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 三目運算子區別C++
- C++中L和_T()之區別C++
- c++中指標和引用的區別?C++指標
- C++中的return和exit區別C++
- C/C++引用和指標的聯絡和區別C++指標
- C++中break和continue的用法和區別C++
- c與c++的區別C++
- C++基礎(八)struct和class的區別C++Struct
- 關於java的引用和c++的區別JavaC++
- 關於C與C++的區別C++
- C和C++的動態記憶體管理的區別C++記憶體
- 【C++系列】指標物件和物件指標的區別C++指標物件
- C、C++、Java、JavaScript、PHP、Python和Ruby,主要有什麼區別?C++JavaScriptPHPPython
- C++和c語言的分別C++C語言
- gcc 和 g++ 的聯絡和區別,使用 gcc 編譯 c++GC編譯C++
- 在C,C++,java和python執行時直譯器和編譯器的區別C++JavaPython編譯
- c++基本型別和變數C++型別變數
- C++教程-----C++變數型別和變數的定義C++變數型別
- C C++變數型別大小和範圍C++變數型別
- 【C++】C++之型別轉換C++型別
- C++特別數的和(列舉)C++
- python和C++語言有何區別?哪個適合人工智慧?PythonC++人工智慧
- 學懂現代C++——《Effective Modern C++》之型別推導和autoC++型別
- C++純虛擬函式簡介及區別C++函式
- fill函式與memset函式的區別(c++)函式C++
- c++ trivial, standard layout和POD型別解析C++型別
- C/C++在哪些方面有區別?詳情介紹如下C++
- Python和C#有哪些區別?PythonC#
- c#中值型別和引用型別的區別C#型別
- [C++之旅] 7 C++類和物件C++物件
- C++中過載、重寫、重定義的區別C++
- 【C/C++】memset方法的誤區C++
- c/c++ 模板 型別推斷C++型別
- 【C++】 C++異常捕捉和處理C++
- const關鍵字在C與C++中修飾變數的區別C++變數
- C#中Hashtable和HashMap的區別C#HashMap
- C++型別推導C++型別
- C++資料型別C++資料型別