儘管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語言中,不須要類型轉換。spa
4)如下程序能夠在C中編譯並正常運行,可是在C ++中編譯失敗。C ++中的const變量必須初始化,但在c中則沒有必要。感謝Pravasi Meet提出了這一點。設計
第4行[錯誤]未初始化的const'a'[-fpermissive]指針
5)這是最差的答案,但仍然是有效答案。咱們可使用特定於C ++的關鍵字之一做爲變量名。該程序不會在C ++中編譯,但會在C中編譯。視頻
一樣,咱們可使用其餘關鍵字,例如delete,explicit,class等。blog
6) C ++比C作更嚴格的類型檢查。例如,如下程序在C中編譯,但不在C ++中編譯。在C ++中,咱們獲得編譯器錯誤「從'int'到'char *'的無效轉換」。感謝Pravasi Meet添加了這一點。教程
7) C ++須要主返回'int'類型
但願對你有幫助!更多編程知識點,會持續分享哦~
另外若是你想更好的提高你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這裏或許能夠幫到你~
C語言C++編程學習交流圈子,QQ羣1090842465【點擊進入】微信公衆號:C語言編程學習基地
分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!
編程學習書籍分享:
編程學習視頻分享: