C语言和C++语言在语法上面的部分区别
標簽: 雜談 | 分類:計算機 |
C語言和C++語言在語法上面的部分區別:
1、C語言的定義必須在最前面,C++可以在任何地方定義,比如
for(int i=0;i<100;i++) s+=i;
在C++中是正確的,但是在C語言中是錯誤的
2、類型強制轉換,C語言必須將類型括起來,C++可以將變量括起來。比如int(a)在C++中是正確的,但是在C語言中是錯誤的,必須寫為(int)a
3、在VC中,int是32位的;在tc中,int是16位的。VC支持C++語法
共享群里面的上機手冊中建立的文件test.cpp.
各位老師在具體作的時候可以建立.C文件取代.cpp文件。
這樣子可以避免很多C和C++的區別。例如:
變量聲明的位置等都和TC中的語法一樣了。
C++是C語言的超集,雖然C++兼容C,但是C++中也有與C語言中不兼容的地方。
一、變量聲明的位置
C中變量聲明和代碼是分開的,必須在函數開始處聲明;
C++中,變量可以在任意處聲明,只要保證先聲名后使用的原則就可以。
二、struct結構體方面
1、用struct定義變量
struct mystruct
{ int i;
float x;
}
在c中聲明struct變量要這么寫:struct mystruct a;
在C++中前面不用加struct:mystruct a;
一種兼容的用法是:
typedef struct _mystruct
{
int i;
float x;
} mystruct;
然后用mystruct 定義變量。枚舉型(enum),聯合體類型(union)也是同樣。
2、在C++中,struct結構體支持成員函數的定義,C中不行。另外要注意的是,C++中成員函數的默認訪問說明符為public,這一點和類不同,類的默認訪問說明符為private.
三、bool類型值
C++中有bool(或boolean類型);C中可沒有這樣的bool類型,均為數值類型!需要注意的是真為非零(如:1,52,-5,-2等),假的數值為0。
四、注釋的不同
C中的注釋至有一種 ;
C++中的注釋包含兩種和//。
五、強制數據類型裝換
C中的強制轉化形式為:(類型)變量;
C++中還可以使用:類型(變量)的形式。
六、賦值
C語言中的賦值只有一中即:=;
C++中除了使用=外,還可以使用()。例如:int x(5);就等于: int x=5;我想這種寫法是給C++中對象初始化時初始化屬性是對象時使用的,那么對于基本類型也可以使用了。
七、函數
1、C語言中函數沒有參數默認值,在C++中函數有參數默認值的概念,注意參數默認值與函數重載的區別。
2、C語言中函數的定義又兩種形式,經典形式和標準形式,C++中只支持標準形式。
標準形式:int string(int x,float y){......}
經典形式: int string(x,y)int x;float y;{......}
3、C++的函數必須先聲名原型或定義才能使用,因為C++是強數據類型語言,在C語言中,未聲名和定義函數之前調用函數是允許的.
八、運算符&和關鍵字const
&運算符最基本的含義是取地址,C和C++中都支持這一語法。但在C++中&還可以表示引用。有了引用的概念后函數調用可以作為左值。例如:
int &rtux()
{
......
}
rtux()=5;
以上表達式在C++中完全正確,但在C語言中是非法的。
const關鍵字要注意一點不同的就是在C++的類函數中,函數可以聲名是可以用const,表示這個函數沒有改變類中的任何屬性。如:void unchange()const;C不能有這樣的生明。
九、extern說明符
在C語言的某些版本中,可以在程序中多次使用一個全局變量而無需使用extern說明符。但在C++中除定義全局變量外,在其他模塊使用應先用extern生明。
十、void指針
在C語言中void指針可以賦給任何類型的指針,但在C++中,卻不行,但可以先進行強制數據類型轉換,在賦值。
?
?
轉載于:https://blog.51cto.com/4691359/963072
總結
以上是生活随笔為你收集整理的C语言和C++语言在语法上面的部分区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: onbeforeunload与onunl
- 下一篇: WCDMA的短消息业务协议分析