C/C++編程筆記:C語(yǔ)言和C++語(yǔ)言的 struct 對(duì)比!區(qū)別在哪里?
1. C++語(yǔ)言將struct當(dāng)成類來(lái)處理的,所以C++的struct可以包含C++類的所有東西,例如構(gòu)造函數(shù),析構(gòu)函數(shù),友元等,C++的struct和C++類唯一不同就是

struct成員默認(rèn)的是public, C++默認(rèn)private。而C語(yǔ)言struct不是類,不可以有函數(shù),也不能使用類的特征例如public等關(guān)鍵字 ,也不可以有static關(guān)鍵字。
2. C++ struct里面成員初始化的形式和類是相同的,不可以直接初始化,就是不可以定義成員的時(shí)候同時(shí)初始化。C語(yǔ)言 struct中間的某個(gè)類型(例如int)也不可以直接初始化。
? ?就是說(shuō)下面int a = 0;在C++和C語(yǔ)言里面都是不能通過(guò)的。

3. ?初始化方式,C++ struct的初始化,C++不僅擁有C語(yǔ)言的初始化方式。如下:

也可以使用類的初始化方式

4. 類型不同,下面代碼:

在C里面實(shí)際上數(shù)據(jù)類型為 (struct HE),所以定義一個(gè)結(jié)構(gòu)HE變量都要 帶上struct.?
structHE a;?? //C語(yǔ)言 變量方式
而在C++里面實(shí)際上數(shù)據(jù)類型為HE(主要是因?yàn)榻Y(jié)構(gòu)體被當(dāng)成類對(duì)待了),所以定義變量不需要 struct.
HE a; //C++語(yǔ)言 變量
5. typedef struct 在C++和C語(yǔ)言中都是一樣的功能,定義別名。 但是要注意下面的代碼的區(qū)別
//代碼一

//代碼二

上面兩個(gè)代碼省略 struct的名字 HE都是可以的。
總結(jié):C++語(yǔ)言因?yàn)槭呛虲語(yǔ)言兼容的,所以C語(yǔ)言的語(yǔ)法在C++編譯器里不會(huì)出錯(cuò),但是程序員最好知道什么是C語(yǔ)言,什么是C++語(yǔ)言。
微信公眾號(hào):C語(yǔ)言編程學(xué)習(xí)基地

學(xué)習(xí)C/C++編程知識(shí),提升C/C++編程能力,歡迎關(guān)注UP一起來(lái)成長(zhǎng)!
另外,UP在主頁(yè)上傳了一些學(xué)習(xí)C/C++編程的視頻教程,有興趣或者正在學(xué)習(xí)的小伙伴一定要去看一看哦!會(huì)對(duì)你有幫助的~