C/C++編程筆記:編寫不會在C ++中編譯的C程序,我教你呀!

儘管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語言編程學習基地

分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)

歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!

編程學習書籍分享:

編程學習視頻分享:

相關文章
相關標籤/搜索