淺談c和c++的某些小差別。本站提示廣大學習愛好者:(淺談c和c++的某些小差別)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談c和c++的某些小差別正文
C++類型檢討加倍嚴厲
c說話中,當字符當作函數參數傳入是,都把字符當整型int應用,sizeof('c') = sizeof(int); 更進一步,c編譯器把字符常量同等於整數常量處置: putchar(10) 同 putchar('\n') 等效。
然則,C++中, sizeof('c') == 1, 彌補解釋一點, sizeof(wchar_t) ==4。 是以可以很輕易代表65,536個分歧的Unicode字符。 別的,C++中,差別函數不只要看他的函數名,更要看它的參數。是以,putchar(10)挪用的是putchar(int)版本
,putchar('\n')挪用的是putchar(char)版本。
C++的函數原型檢討加倍嚴厲。如c中的函數界說: void func();表現函數func()存在,無前往值。該聲明不指定詳細有若干個情勢參數。然則在C++中,表現其不得無形式參數傳入!
main函數
C++中, main函數重要有兩種寫法: int main() 和 int main(int argc, char** argv);
main函數中的前往類型為 int, 不是void
若無顯示寫 return語句,默許前往0;
若寫了return語句,必需跟上某個整型值,如 return 1; 只寫 return; 是嚴重毛病的。
類型檢討
函數挪用時,原型必需嚴厲婚配。C說話中默許包括stdio.h,然則C++不默許包括,是以必需包括 cstdio 頭文件。C說話中某些編譯器友誼資助了stdio.h。
函數相干的分歧
函數重載
C++支撐函數重載。函數重載必需知足
a. 函數名雷同
b. 形參表分歧
c. 形參的屬性分歧 等於否 const
在編譯時,其實對重載函數,外部采取別的個名字表達,專業術語是"name mangling", 如 void show(int) --> VshowI, void show(char*)-->VshowCP, 如許的名字。
形參默許值
默許形參必需湧現在函數界說中,而不是在函數完成中。
代碼加倍優雅
單行正文, C++中多了單行正文 //
C++11 中的 NULL-pointers vs. 0-pointers and nullptr
C++中一切的零值都是0. 在C中,NULL在指針高低文中表現0,在C++中,應當防止應用NULL,固然它的宏界說就是0.
C++11引入了新的症結字nullptr表現零值指針,它只能賦給指針類型
C++中可使用C運轉庫中的函數,然則須要加上 extern "C" 這個前綴
在C89中,部分變量必需在函數或語句塊的肇端處界說!還在應用VC6.0的請留意了,為了你更好的代碼生活,擯棄它吧。 C99曾經支撐部分界說了,算是C的一年夜改良。 而C++可以在隨意率性處所界說部分變量。
C++中,構造體在界說變量時可以省略struct症結字
C++中,構造體中可以包括函數,即默許屬性是public的類
以上就是小編為年夜家帶來的淺談c和c++的某些小差別全體內容了,願望年夜家多多支撐~