儘管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++程式設計!彎道超車,快人一步!筆者這裡或許可以幫到你~
程式設計學習書籍分享:
程式設計學習影片分享:
分享(原始碼、專案實戰影片、專案筆記,基礎入門教程)