您好,登錄后才能下訂單哦!
只有C語言和C++語言,沒有C+語言。
1、出現(xiàn)時間不同
C++是C的超集,也可以說C是C++的子集,因為C先出現(xiàn)。按常理說,C++編譯器能夠編譯任何C程序,但是C和C++還是有一些小差別。
例如C++增加了C不具有的關(guān)鍵字。這些關(guān)鍵字能作為函數(shù)和變量的標(biāo)識符在C程序中使用,盡管C++包含了所有的C,但顯然沒有任何C++編譯器能編譯這樣的C程序。
2、C程序可以省略函數(shù)原型,而C++不可以
一個不帶參數(shù)的C函數(shù)原型必須把void寫出來。而C++可以使用空參數(shù)列表。C++中new和delete是對內(nèi)存分配的運算符,取代了C中的malloc和free。標(biāo)準(zhǔn)C++中的字符串類取代了C標(biāo)準(zhǔn)C函數(shù)庫頭文件中的字符數(shù)組處理函數(shù)(C中沒有字符串類型)。
C++中用來做控制態(tài)輸入輸出的iostream類庫替代了標(biāo)準(zhǔn)C中的stdio函數(shù)庫。C++中的try/catch/throw異常處理機制取代了標(biāo)準(zhǔn)C中的setjmp()和longjmp()函數(shù)。
3、關(guān)鍵字和變量不同
在C++中還增加了bool型變量和wchar_t型變量:布爾型變量是有兩種邏輯狀態(tài)的變量,它包含兩個值:真和假。如果在表達(dá)式中使用了布爾型變量。
那么將根據(jù)變量值的真假而賦予整型值1或0。要把一個整型變量轉(zhuǎn)換成布爾型變量,如果整型值為0,則其布爾型值為假;反之如果整型值為非0,則其布爾型值為真。布兒型變量在運行時通常用做標(biāo)志,比如進(jìn)行邏輯測試以改變程序流程。
C++中還包括wchar_tt數(shù)據(jù)類型,wchar_t也是字符類型,但是是那些寬度超過8位的數(shù)據(jù)類型。許多外文字符集所含的數(shù)目超過256個,char字符類型無法完全囊括。wchar_t數(shù)據(jù)類型一般為16位。
標(biāo)準(zhǔn)C++的iostream類庫中包括了可以支持寬字符的類和對象。用wout替代cout即可。
4、強制類型轉(zhuǎn)換不同
有時候,根據(jù)表達(dá)式的需要,某個數(shù)據(jù)需要被當(dāng)成另外的數(shù)據(jù)類型來處理,這時,就需要強制編譯器把變量或常數(shù)由聲明時的類型轉(zhuǎn)換成需要的類型。為此,就要使用強制類型轉(zhuǎn)換說明,格式如下:int iptr=(int) &table;
表達(dá)式的前綴(int*)就是傳統(tǒng)C風(fēng)格的強制類型轉(zhuǎn)換說明(typecast),又可稱為強制轉(zhuǎn)換說明(cast)。強制轉(zhuǎn)換說明告訴編譯器把表達(dá)式轉(zhuǎn)換成指定的類型。
有些情況下強制轉(zhuǎn)換是禁用的,例如不能把一個結(jié)構(gòu)類型轉(zhuǎn)換成其他任何類型。數(shù)字類型和數(shù)字類型、指針和指針之間可以相互轉(zhuǎn)換。當(dāng)然,數(shù)字類型和指針類型也可以相互轉(zhuǎn)換,但通常認(rèn)為這樣做是不安全而且也是沒必要的。強制類型轉(zhuǎn)換可以避免編譯器的警告。
5、函數(shù)重載
在C++中,允許有相同的函數(shù)名,不過它們的參數(shù)類型不能完全相同,這樣這些函數(shù)就可以相互區(qū)別開來。而這在C語言中是不允許的。
參考資料來源:百度百科-C++
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。