C和C++區別

it小小笨鳥發表於2020-12-21

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

相關文章