C語言和C++語言在語法上面的部分區別:
一、C語言的定義必須在最前面,C++能夠在任何地方定義,好比
for(int i=0;i<100;i++) s+=i;
在C++中是正確的,可是在C語言中是錯誤的
二、類型強制轉換,C語言必須將類型括起來,C++能夠將變量括起來。好比int(a)在C++中是正確的,可是在C語言中是錯誤的,必須寫爲(int)a
三、在VC中,int是32位的;在tc中,int是16位的。VC支持C++語法
共享羣裏面的上機手冊中創建的文件test.cpp.
各位老師在具體做的時候能夠創建.C文件取代.cpp文件。
這樣子能夠避免不少C和C++的區別。例如:
變量聲明的位置等都和TC中的語法同樣了。html
C++是C語言的超集,雖然C++兼容C,可是C++中也有與C語言中不兼容的地方。
1、變量聲明的位置
C中變量聲明和代碼是分開的,必須在函數開始處聲明;
C++中,變量能夠在任意處聲明,只要保證先聲名後使用的原則就能夠。
2、struct結構體方面
一、用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)也是一樣。
二、在C++中,struct結構體支持成員函數的定義,C中不行。另外要注意的是,C++中成員函數的默認訪問說明符爲public,這一點和類不一樣,類的默認訪問說明符爲private.
3、bool類型值
C++中有bool(或boolean類型);C中可沒有這樣的bool類型,均爲數值類型!須要注意的是真爲非零(如:1,52,-5,-2等),假的數值爲0。
4、註釋的不一樣
C中的註釋至有一種 ;
C++中的註釋包含兩種和//。
5、強制數據類型裝換
C中的強制轉化形式爲:(類型)變量;
C++中還可使用:類型(變量)的形式。
6、賦值
C語言中的賦值只有一中即:=;
C++中除了使用=外,還可使用()。例如:int x(5);就等於: int x=5;我想這種寫法是給C++中對象初始化時初始化屬性是對象時使用的,那麼對於基本類型也可使用了。
7、函數
一、C語言中函數沒有參數默認值,在C++中函數有參數默認值的概念,注意參數默認值與函數重載的區別。
二、C語言中函數的定義又兩種形式,經典形式和標準形式,C++中只支持標準形式。
標準形式:int string(int x,float y){......}
經典形式: int string(x,y)int x;float y;{......}
三、C++的函數必須先聲名原型或定義才能使用,由於C++是強數據類型語言,在C語言中,未聲名和定義函數以前調用函數是容許的.
8、運算符&和關鍵字const
&運算符最基本的含義是取地址,C和C++中都支持這一語法。但在C++中&還能夠表示引用。有了引用的概念後函數調用能夠做爲左值。例如:
int &rtux()
{
......
}
rtux()=5;
以上表達式在C++中徹底正確,但在C語言中是非法的。
const關鍵字要注意一點不一樣的就是在C++的類函數中,函數能夠聲名是能夠用const,表示這個函數沒有改變類中的任何屬性。如:void unchange()const;C不能有這樣的生明。
9、extern說明符
在C語言的某些版本中,能夠在程序中屢次使用一個全局變量而無需使用extern說明符。但在C++中除定義全局變量外,在其餘模塊使用應先用extern生明。
10、void指針
在C語言中void指針能夠賦給任何類型的指針,但在C++中,卻不行,但能夠先進行強制數據類型轉換,在賦值。
ide