什麼是C語言和C語言C語言和C語言的區別是什麼?

2021-03-08 17:19:04 字數 6525 閱讀 4570

1樓:小夏在深圳

1、c語言。

c語言誕生得非常早,當時人們普遍還習慣用組合語言編寫軟體,並且沒有什麼統一,通用的作業系統,基本上軟體都是從0開始寫的。c語言的方針便是比彙編方便易用,一起不要損失彙編的表達能力。所以c語言可以看成是「高階的彙編」語言。

c語言的源**基本上可以非常容易地對應到彙編**,並且可以不需要什麼執行時環境的支撐。c的特點,簡單容易編譯,靈活貼近底層。所以一向到現在,一些需要直接和硬體打交道的軟體都還是用c語言寫的,比如(但不限於)linux kernel和一些嵌入式領域。

2、c++ 語言

c++早期是基於c的,c++早期的編譯方法是將c++的**編譯成c**然後再呼叫c的編譯器來生成機器碼。c++的方針是進步程式設計人員的生產率,哪怕代價是增加編譯器的複雜度。

擴充套件資料

1、c語言中,如果一個函式沒有指定返回值型別,預設為int型別,並返回一個隨機數,一般為0xcccccccc.

2、在c++中,如果函式沒有返回值則必須指定為void型,否則編譯不能通過。

2樓:文化廚子

c語言全稱:the c programming language,它是一門通用計算機程式語言,它是在bcpl語言上發展而來的,bcpl的作稱是basic ***bined programming language,因為c語言在它的基礎上開發出來的,所以很多c程式設計師喜歡將bcpl解釋成(before c progamming language)。c語言應用廣泛。

它的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。因此c語言在針對硬體程式設計以及系統底層開發中得到大量的應用,現在大部使用者使用的windows系統以及linux系統都是用c語言開發出來的。

c++語言全稱:the c++ programming language,它是是在c語言的基礎上開發的一種通用程式語言,應用廣泛。c++支援多種程式設計正規化 :

物件導向程式設計、泛型程式設計和過程化程式設計。最新正式標準c++14於2023年8月18日公佈。 其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大受用的最強大程式語言之一,支援類:

類、封裝、過載等!c++主要用於大型的應用程式開發,比如遊戲開發。

3樓:

c語言是一門通用的計算機程式設計語言,它是從b語言(bcpl)上改進發展而來的。c語言最初是為了開發unix作業系統而設計的,這使得它可以以一種簡易的方式編譯,處理低階硬體儲存器,只產生比較少的彙編機器碼並且可以在任意系統下執行,無需環境支援。正因為以上特點,c語言在底層硬體程式設計和系統核心(底層)開發中得到大量廣泛的應用。

unix系統80%都是使用c語言編寫的。windows系統的核心大部分也是c語言開發的。

c+語言是一個與c/c++毫無關係的早期程式語言,現已廢棄,內容不詳。它留下的資料極少,以至於早已沒有人記得它了。

c++是對於c語言的物件導向擴充,在c語言的基礎上開發的一種通用計算機程式設計語言。應用同樣廣泛。c語言是純程序導向的,c++語言在此基礎上增加了物件導向程式設計,泛型程式設計以及過程化程式設計,支援類,封裝,運算子(函式)過載等等。

c++對c語言進行了大量的改進,使得c++既具有c語言的低階硬體操作特性,也具有現代物件導向的新型程式設計方法,使得它成為至今應用最廣泛,最強大的程式語言之一。c++主要用於開發大型工程專案,使用者介面開發。比如說開發各種遊戲等。

4樓:落霞秋無聲

簡單地說,c++就是c加、加。也就是說,它是c語言的超集。作為一個超集意味著當一個編寫良好的ansi standard c 語言程式被提交到一個c++語言編譯程式時,它可以被正確地編譯。

通常,*.c檔案被認為是c編譯模式,而*.cpp被認為是 c++編譯模式。

如果你是一個有經驗的c程式設計師,那麼不要被c++的特性嚇倒,因為c++語言產生初衷就是為了讓c程式設計師逐漸地過渡到物件導向的程式設計方法。如果你只是一個初級的c程式設計師,或者你沒有多少程式設計經驗,那就需要多下功夫了。

c++特性

首先,c++區別於c的一些特性是與物件導向毫無關係的。(或者說,這些特性只是為了讓c語言使用更方便。) 下面我們就由這些特性開始學習。

新的註釋風格

c++定義了一種新的註釋風格,即兩條斜線(//)表示一行註釋。以前,c程式必須使用/*----*/來表示註釋。現在你有了更好的選擇。享受這種特性吧!

5樓:手機使用者

c主要是順序,分支,迴圈這三種結構,以及過程,函式呼叫。

c++是物件導向的語言,主要在於建立類,類的繼承和派生,建立物件上。

6樓:手機使用者

一個是程序導向的,一個是物件導向的。

c語言和c++語言的區別是什麼?

7樓:小張

c語言與c++的區別有很多:

1,全新的程式程式思維,c語言是程序導向的,而c++是物件導向的。

2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個標頭檔案中;而c++對於大多數的函式都是有整合的很緊密,特別是c語言中沒有的c++中的api是對window系統的大多數api有機的組合,是一個集體。但你也可能單獨呼叫api。

3,特別是c++中的圖形處理,它和語言的圖形有很大的區別。c語言中的圖形處理函式基本上是不能用在中c++中的。c語言標準中不包括圖形處理。

4,c和c++中都有結構的概念,但是在c語言中結構只有成員變數,而沒成員方法,而在c++中結構中,它可以有自己的成員變數和成員函式。但是在c語言中結構的成員是公共的,什麼想訪問它的都可以訪問;而在vc++中它沒有加限定符的為私有的。

4,c語言可以寫很多方面的程式,但是c++可以寫得更多更好,c++可以寫基於dosr程式,寫dll,寫控制元件,寫系統。

5,c語言對程式的檔案的組織是鬆散的,幾乎是全要程式處理;而c++對檔案的組織是以工程,各檔案分類明確。

6,c++中的ide很智慧,和vb一樣,有的功能可能比vb還強。

7,c++對可以自動生成你想要的程式結構使你可以省了很多時間。有很多可用的工具如加入mfc中的類的時候,加入變數的時候等等。

8,c++中的附加工具也有很多,可以進行系統的分析,可以檢視api;可以檢視控制元件。

9,除錯功能強大,並且方法多樣

*c語言是程序導向的,而c++是物件導向的*

8樓:匿名使用者

c是c++子集,c語言中的大部命令和語句都能在c++裡執行,反過來則不行。

c語言是面向結構程式語言,c++是物件導向的程式語言。

c++提供了更豐富的函式和工具,更便於開發程式。

9樓:老子很涼

區別太多,跟你講下理念的區別吧:

c語言是程序導向語言,通過變數,函式等完成操作,一般用於較為底層的,和硬體直接打交道(比如控制暫存器,驅動程式的編寫)。

c++語言是一門面嚮物件語言,通過類,例項化類的物件來完成功能,相對於c語言更多應用於上層軟體。

語言沒有好壞優劣,只有適合不適合,要根據你要完成的專案決定語言和開發工具。

10樓:匿名使用者

在很大程度上,標準c++是標準c的超集.實際上,所有c程式也是c++程式,然而,兩者之間有少量區別.下面簡要介紹一下最重要的區別.

在c++中,民,區域性變數可以在一個程式塊內在任何地方宣告,在c中,區域性變數必須在程式塊的開始部分,即在所有"操作"語句之前宣告,請注意,c99標準中取消了這種限制.

在c中,按如下方式宣告的函式沒有對函式變元進行任何說明;

int func();

也就是說,如果沒有在函式後面的括孤內指定任何變元,這在c中就意味著對函式變元未做任何宣告,該函式可能有變元,也可能沒有變元,然而,在c++中,這樣的函式宣告意味著該函式沒有變元,也就是說,在c++中,下面這兩個函式宣告具有同樣的作用:

int func();

int func(void);

在c++中,變元列表中的void是任選的.許多c++程式設計師使用它們是為了表明函式沒有任何變元的,以便於他人理解程式.但是,從技術上說,void不是必須的.

在c++中,所有函式均必須被設計成原型,但這在c中只是一種選擇.程式設計經驗表明,在程式中也應該給函式採用原型設計方法.在c與c++之間還存在一個重要而又細微的差別,即字元常數在c中被自動作為整形來處理,但在c++中則不然.

在c中,多次宣告一個全域性變數雖然不可取,但不算錯.在c++中,多次宣告同一個全域性變數會引發錯誤.

在c中,一個識別符號可以至少31個有效的組成字元.在c++中,一個識別符號的所有組成字元均是有效的.可是,從實用角度看,過長的識別符號沒有太大的用處,不僅不便於記憶,而且還會增加出現打字錯誤的可能性.

在c中,在程式內部呼叫main()函式的情形不常見,但這種做法是容許的,在c++中,這種做法是不容許的.

在c中,無法獲得register型的地址,在c++中則可以獲得這種地址.

在c中,如果型別宣告語句中沒有指定型別名,該型別被假定成int,這種隱式轉型在c99與c++中是不允許的.

#include

using namespace std;

為什麼沒有.h字尾名?

名稱iostream沒有副檔名.h,原因是是標準c++所定義的新式頭部檔案之一,新式c++頭部檔案不再使用.h副檔名.

第二行告訴編譯程式使用std名稱空間,名稱空間是最近才新增到c++中,一個名稱空間建立一個宣告範圍,在該範圍內可以放置各種程式元素.名稱空間用來幫助組織大型程式的結構.這條using語句通知編譯程式,程式設計師需要使用std名稱空間,這是整個標準c++庫宣告所使用的名稱空間.

通過使用sdt名稱空間,程式可以簡化對標準庫的訪問.普通c程式僅使用c子集,不需要名稱空間語句,因為c的庫函式在預設的全域性名稱空間中是可使用的.

類與結構體的區別:類與結構體是相互關聯的

結構是c的一部分,c++從c中繼承了結構,在語法上,類與結構十分相似,在關係上,這兩者也很接近,在c++中,結構的作用被拓寬了,進而使結構成為了類的一種替代方法.實際上,類與結構的惟一區別在於:在預設狀態下,結構的所有成員均是公有的,而類的所有成員是私有的.

除此之外,類與結構是等價的,也就是說,一個結構定義了一個類的型別.

c++同時包含這兩個等價的關鍵字struct與class基於3個方面的原因.第一,加強結構的能力.在c中,結構提供了一種資料分組方法,因而讓結構包含成員函式是一個小小的改進.

第二,由於類與結構是相互關聯的,所有現有c**到c++的移植變得更容易.第三,由於類與結構的等價性,提供兩個不同的關鍵字可以使類定義自由發展,為了保持c++與c的相容性,結構定義必須始終受它的c定義的結束.

即使在有些地方可以使用結構來代替類,但儘量不要這麼做,為了清楚起見,該用類的地方就用class關鍵字,該用c結構的地方就用struct關鍵字.

類與聯合是相互關聯的

聯合也可以用來定義類.在c++中,聯合包含成員函式,變數以及構造與解構函式.c++聯合保留了c聯合的全部特徵,其中最重要的特徵是所有資料元素共享記憶體的相同地址.

與結構類似,聯合的成員在預設狀態下也是公有的,並且完全相容於c.與結構一樣,c++中的聯合宣告定義了一種特殊的類,進而意味著保持了類的封裝原則.

c++的聯合有幾個必須遵守的使用限制.第一,聯合不能繼承其他任何型別的類.第二,聯合不能是基類,不能包含有虛擬函式成員.

靜態變數不能是聯合的成員. 聯合不能使用引用成員,而且不能有任何作為成員的過載賦值運算子的物件.第三,如果一個物件包含明確的構造或解構函式,該物件不能成為聯合的成員.

c++有一個叫做匿名聯合的特殊聯合.匿名聯合沒有型別名,也不宣告任何變數,只是告訴編譯程式它的成員變數共享一個記憶體地址.但是,變數本身無需要使用常規的點運算子語法即可直接引用.

上述聯合的使用限制也適用於匿名聯合,但下面這兩個限制除外,第一,匿名聯合所包含的元素只能是資料,不能包含成員函式,也不能包含私有或受保護元素;第二,全域性匿名聯合必須宣告成靜態的.

c語言與c++的區別有很多:

1,全新的程式程式思維,c語言是程序導向的,而c++是物件導向的。

2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個標頭檔案中;而c++對於大多數的函式都是有整合的很緊密,特別是c語言中沒有的c++中的api是對window系統的大多數api有機的組合,是一個集體。但你也可能單獨呼叫api。

3,特別是c++中的圖形處理,它和語言的圖形有很大的區別。c語言中的圖形處理函式基本上是不能用在中c++中的。c語言標準中不包括圖形處理。

4,c和c++中都有結構的概念,但是在c語言中結構只有成員變數,而沒成員方法,而在c++中結構中,它可以有自己的成員變數和成員函式。但是在c語言中結構的成員是公共的,什麼想訪問它的都可以訪問;而在vc++中它沒有加限定符的為私有的。

4,c語言可以寫很多方面的程式,但是c++可以寫得更多更好,c++可以寫基於dosr程式,寫dll,寫控制元件,寫系統。

5,c語言對程式的檔案的組織是鬆散的,幾乎是全要程式處理;而c++對檔案的組織是以工程,各檔案分類明確。

6,c++中的ide很智慧,和vb一樣,有的功能可能比vb還強。

7,c++對可以自動生成你想要的程式結構使你可以省了很多時間。有很多可用的工具如加入mfc中的類的時候,加入變數的時候等等。

8,c++中的附加工具也有很多,可以進行系統的分析,可以檢視api;可以檢視控制元件。

9,除錯功能強大,並且方法多樣

*c語言是程序導向的,而c++是物件導向的*

c語言和c語言的區別是什麼C語言和C語言的區別是什麼?

c語言與c 的區別有很多 1,全新的程式程式思維,c語言是程序導向的,而c 是物件導向的。2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個標頭檔案中 而c 對於大多數的函式都是有整合的很緊密,特別是c語言中沒有的c 中的api是對window系統的大多數api有機的組合,是一個集體...

C語言與C 結構體的區別,C語言和C 語言的區別是什麼?

c語言的結構就是值型別,跟int,char沒有什麼區別 c 的結構跟類已經非常接近了,就是如果不具體說明,預設為共有 比如說這個結構體吧.struct mystruct str 在c 裡可以這樣用 mystruct s1 mystruct 就是一個型別,在c裡只能這樣用其 struct mystru...

C語言和組合語言的區別是什麼,組合語言和C語言有什麼區別?

這裡所說的語言就是跟電腦溝通的手段 電腦只知道什麼時候開哪個通道 1狀態 什麼時候關哪個通道 0狀態 那麼傳遞開關資訊就需要資訊的進入 機器語言 組合語言實質上是機器語言的助記符 讓語言更容易讀懂,實質上是一樣的,翻譯過來就是一系列的0和1 而c語言要通過編譯器才能編譯成機器語言,也就是多套了一層,...