首頁>技術>

儘管C ++被設計為與C具有向後相容性,但是當使用C ++編譯器進行編譯時,可能會有許多C程式會產生編譯器錯誤。以下是其中一些。

1)在C ++中,在宣告函式之前呼叫函式是編譯器錯誤。但是在C語言中,它可以編譯

2)在C ++中,使普通指標指向const變數是編譯器錯誤,但在C中是允許的。

3)在C語言中,可以將void指標直接分配給其他一些指標,例如int *,char *。但是在C ++中,必須顯式地鍵入void指標。

使用malloc()時,我們會注意到這一點。malloc()的返回型別為void *。在C ++中,我們必須顯式將malloc()的返回值型別轉換為適當的型別,例如“ int * p =(int *)malloc(sizeof(int))”。在C語言中,不需要型別轉換。

4)以下程式可以在C中編譯並正常執行,但是在C ++中編譯失敗。C ++中的const變數必須初始化,但在c中則沒有必要。感謝Pravasi Meet提出了這一點。

第4行[錯誤]未初始化的const'a'[-fpermissive]

5)這是最差的答案,但仍然是有效答案。我們可以使用特定於C ++的關鍵字之一作為變數名。該程式不會在C ++中編譯,但會在C中編譯。

同樣,我們可以使用其他關鍵字,例如delete,explicit,class等。

6) C ++比C做更嚴格的型別檢查。例如,以下程式在C中編譯,但不在C ++中編譯。在C ++中,我們得到編譯器錯誤“從'int'到'char *'的無效轉換”。感謝Pravasi Meet添加了這一點。

7) C ++需要主返回'int'型別

另外如果你想更好的提升你的程式設計能力,學好C語言C++程式設計!彎道超車,快人一步!筆者這裡或許可以幫到你~

程式設計學習書籍分享:

程式設計學習影片分享:

分享(原始碼、專案實戰影片、專案筆記,基礎入門教程)

11
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • python如何用matplotlib建立三維圖表