c與c 的區別

2021-08-03 18:18:33 字數 951 閱讀 6232

1、兩者最主要的區別在於程式設計思想上。

c是乙個結構化程式設計語言,注重的是過程,通常用於實現資料結構和演算法。c語言通常注重的是給定乙個輸入,如果通過乙個過程來給出乙個輸出。

而c++則有物件導向的思想,是乙個自頂向下,逐步求精的過程。

2、從語言角度來看,c是c++的子集。

c++是帶類的c,c++具有物件導向的過程。但是c中不具備物件導向的思想。c++在c的基礎上引入了函式過載、類、模板、容器等。

3、c中的struct與c++中的class的區別

c中struct只能用於定義複雜資料型別的關鍵字,不能再c的struct中放函式。並且c中的struct不能設定訪問權,根本沒有訪問許可權這一說。

c++中class可以放複雜資料型別,也將函式定義在類內。並且可以通過public、private、protected來設定成員的訪問許可權。

4、c++中struct與c++中class的區別

c++中struct出了與c++中class預設訪問許可權不同之外,其他兩者都是相同的。c++中struct的預設訪問許可權是public的,class預設是private的。其他的繼承、虛函式等兩者相同的。

5、c中的函式編譯方式與c++中函式編譯方式不同

對於乙個函式,c只是根據函式名進行編譯,c++中是根據函式名和函式形參型別進行編譯的。因此c中的函式不支援過載,c++中函式支援過載。如下兩個函式:

void func(int ,int);

void func(int);

這兩個函式在c中都被編譯為_func_的新名字,從而引發二義性錯誤。

在c++中兩個函式分別被編譯為_func_int_int_和_func_int_這兩個函式名。他們在核心中是兩個不同的函式,因此c++中函式允許過載。

C 與C的區別

l c如果不寫返回值,預設是int,而c 中不能不寫返回值 可用void表示無返回值 如func1 l int func1 在c中表示可帶任意引數的函式,這是c的漏洞,使得它避開了引數型別檢查 而c 中表示不帶引數的函式。2 標頭檔案的區別 l c 的標頭檔案去掉了c中的.h,以c字首開始。比如,變...

C與C 的區別

1.void型指標 int x malloc sizeof int 10 在c裡面是合法的,但是在c 中編譯不通過。從bjarne stroustrup給出的解釋是這種型別是不安全的。就是說你可以使用乙個void型的指標指向任何位址,如果你分配了乙個位址給這個void指標指向另乙個與它型別不同的指標...

C與C 的區別

在很大程度上,標準c 是標準c的超集.實際上,所有c程式也是c 程式,然而,兩者之間有少量區別.下面簡要介紹一下最重要的區別.在c 中,民,區域性變數可以在乙個程式塊內在任何地方宣告,在c中,區域性變數必須在程式塊的開始部分,即在所有 操作 語句之前宣告,請注意,c99標準中取消了這種限制.在c中,...