C,C+和C++它們有什麼區別

只有C語言和C++語言,沒有C+語言。

1、出現時間不同
C++是C的超集,也可以說C是C++的子集,因爲C先出現。按常理說,C++編譯器能夠編譯任何C程序,但是C和C++還是有一些小差別。

例如C++增加了C不具有的關鍵字。這些關鍵字能作爲函數和變量的標識符在C程序中使用,儘管C++包含了所有的C,但顯然沒有任何C++編譯器能編譯這樣的C程序。

2、C程序可以省略函數原型,而C++不可以

一個不帶參數的C函數原型必須把void寫出來。而C++可以使用空參數列表。C++中new和delete是對內存分配的運算符,取代了C中的malloc和free。標準C++中的字符串類取代了C標準C函數庫頭文件中的字符數組處理函數(C中沒有字符串類型)。

C++中用來做控制態輸入輸出的iostream類庫替代了標準C中的stdio函數庫。C++中的try/catch/throw異常處理機制取代了標準C中的setjmp()和longjmp()函數。

3、關鍵字和變量不同

在C++中還增加了bool型變量和wchar_t型變量:布爾型變量是有兩種邏輯狀態的變量,它包含兩個值:真和假。如果在表達式中使用了布爾型變量。

那麼將根據變量值的真假而賦予整型值1或0。要把一個整型變量轉換成布爾型變量,如果整型值爲0,則其布爾型值爲假;反之如果整型值爲非0,則其布爾型值爲真。布兒型變量在運行時通常用做標誌,比如進行邏輯測試以改變程序流程。

C++中還包括wchar_tt數據類型,wchar_t也是字符類型,但是是那些寬度超過8位的數據類型。許多外文字符集所含的數目超過256個,char字符類型無法完全囊括。wchar_t數據類型一般爲16位。

標準C++的iostream類庫中包括了可以支持寬字符的類和對象。用wout替代cout即可。

4、強制類型轉換不同

有時候,根據表達式的需要,某個數據需要被當成另外的數據類型來處理,這時,就需要強制編譯器把變量或常數由聲明時的類型轉換成需要的類型。爲此,就要使用強制類型轉換說明,格式如下:int iptr=(int) &table;

表達式的前綴(int*)就是傳統C風格的強制類型轉換說明(typecast),又可稱爲強制轉換說明(cast)。強制轉換說明告訴編譯器把表達式轉換成指定的類型。

有些情況下強制轉換是禁用的,例如不能把一個結構類型轉換成其他任何類型。數字類型和數字類型、指針和指針之間可以相互轉換。當然,數字類型和指針類型也可以相互轉換,但通常認爲這樣做是不安全而且也是沒必要的。強制類型轉換可以避免編譯器的警告。

5、函數重載

在C++中,允許有相同的函數名,不過它們的參數類型不能完全相同,這樣這些函數就可以相互區別開來。而這在C語言中是不允許的。

參考資料來源:百度百科-C++

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章