結(jié)構(gòu)體struct
相關(guān)知識(shí)
-
概念
結(jié)構(gòu)體是用戶根據(jù)實(shí)際需求,定義的復(fù)合數(shù)據(jù)類型
-
和
class
的區(qū)別在
C
語言中驾凶,struct
只能包含成員變量牙甫,不能包含成員函數(shù),而在C++
中,struct
類似于class
调违,既可以包含成員變量窟哺,又可以包含成員函數(shù)。class
可以繼承,默認(rèn)訪問權(quán)限為private
,面向?qū)ο蟮乃枷?/p>struct
默認(rèn)訪問權(quán)限是public
,封裝多項(xiàng)數(shù)據(jù)
-
struct
的注意點(diǎn)結(jié)構(gòu)體在定義時(shí)并沒有分配內(nèi)存(此時(shí)只是一個(gè)模型),而是在定義結(jié)構(gòu)體變量時(shí)分配內(nèi)存
結(jié)構(gòu)體變量不能進(jìn)行四則運(yùn)算,但可以相互賦值技肩。
-
動(dòng)態(tài)內(nèi)存的分配和釋放
- 使用
malloc
分配內(nèi)存,使用free
釋放內(nèi)存
- 使用
struct Student
{
int sno;
int age;
};
//分配內(nèi)存
struct Student *p=(struct Student*)malloc(sizeof(struct Student));
//釋放內(nèi)存
free(p)
- 局部變量在函數(shù)內(nèi)執(zhí)行完就釋放了,跨函數(shù)使用內(nèi)存~只能通過動(dòng)態(tài)分配內(nèi)存來實(shí)現(xiàn)