C和C++區別
C和C++的區別
1、C89標準的C語言不支援函式預設值,C++支援函式預設值,且需要遵循從右向左賦初始值
2、inline行內函數,C89沒有,在呼叫點直接展開,不生成符號,沒有棧幀的開闢回退,僅在Release版本下生效。一般寫在標頭檔案中
3、C語言不存在函式過載,C++根據函式名引數個數引數型別判斷過載,屬於靜多型,必須同一作用域下才叫過載
4、C語言中被const修飾的變數不是常量,叫做常變數或者只讀變數,這個常變數是無法當作陣列下標的。然而在C++中const修飾的變數可以當作陣列下標使用,成為了真正的常量。這就是C++對const的擴充套件。
5、C語言中作用域只有兩個:區域性,全域性。C++中則是有:區域性作用域,類作用域,名字空間作用域三種。
6、在C語言中,函式沒有指定引數列表時,預設可以接收任意多個引數;但在C++中,因為嚴格的引數型別檢測,沒有引數列表的函式,預設為void,不接收任何引數
7、C語言中,如果一個函式沒有指定返回值型別,預設返回int型別;C++中,如果一個函式沒有返回值則必須指定為void
相關文章
- C/C++——sizeof和strlen的區別C++
- c++ 和 c 三目運算子區別C++
- C/C++引用和指標的聯絡和區別C++指標
- C++中運算子 &和&&、|和|| 的區別C++
- C++中的return和exit區別C++
- C++中L和_T()之區別C++
- c++中指標和引用的區別?C++指標
- C++中 struct 和 class 的區別C++Struct
- C++中指標和引用的區別C++指標
- C++和java多型的區別C++Java多型
- C++中struct 和 class的區別C++Struct
- c++中&和&&有什麼區別C++
- 【C++】C++用new和不用new建立類物件區別C++物件
- Objective-C 和 C++ 的區別有哪些?ObjectC++
- c與c++的區別C++
- C++ new A 和 new A() 的區別詳解C++
- C/C++——C和C++怎樣分配和釋放記憶體,區別是什麼?C++記憶體
- C++中break和continue的用法和區別C++
- 關於java的引用和c++的區別JavaC++
- C++基礎(八)struct和class的區別C++Struct
- C++中vector*和vector有什麼區別C++
- JAVA 與 C++ 的區別JavaC++
- 關於C與C++的區別C++
- 引用的例子 C C++ 中區別C++
- C和C++的動態記憶體管理的區別C++記憶體
- C/C++——C++中new與malloc的10點區別C++
- C++三種容器:list、vector和deque的區別C++
- 【C++系列】指標物件和物件指標的區別C++指標物件
- C/C++的mem函式和strcopy函式的區別和應用C++函式
- C與C++中struct使用的區別C++Struct
- C++ 結構體struct和共同體union的區別C++結構體Struct
- C++學習之路(vector::clear和vector::erase的區別)C++
- java 和c++在編譯和執行上有什麼區別?JavaC++編譯
- C++和c語言的分別C++C語言
- C++指標與引用的區別C++指標
- gcc 和 g++ 的聯絡和區別,使用 gcc 編譯 c++GC編譯C++
- C、C++、Java、JavaScript、PHP、Python和Ruby,主要有什麼區別?C++JavaScriptPHPPython
- c++基本型別和變數C++型別變數