结构体定义容易混淆的地方
第一種:
struct Student
{
?? ...
?? ...
};???? Student為結(jié)構(gòu)體名,相當于一種數(shù)據(jù)類型。可以和int、char等一樣的用法。
?? ? a. ? 這種形式用在C語言中,要聲明該結(jié)構(gòu)體類型的對象,應(yīng)該寫為struct Student? stud1;
???? b. ? 這種形式用在C++語言中,要聲明其對象,直接寫Student? stud1;
第二種:
typedef struct Student
{?? ...
?? ...
}Stu;??? //Stu是一種數(shù)據(jù)類型
等同于:
typedef struct
?? ...
?? ...
?????? Stu是名為Student的結(jié)構(gòu)體這一數(shù)據(jù)類型的別名,c/c++中聲明該類型的變量時都為Stu stud1;
?????? 可以看出,第二種方式在c++語言中并沒有多大意義,兩種方式定義的結(jié)構(gòu)體在聲明對象時并無繁簡區(qū)分,但在c中卻是簡化了結(jié)構(gòu)體類型的變量的聲明,不用每次都寫關(guān)鍵字struct。
另外區(qū)別于第二種方式有如下寫法容易混淆:
struct Student
{
?? ...
?? ...
}stu1;?? //stu1是一個變量
?????? 這種方式在定義結(jié)構(gòu)體的同時聲明了該結(jié)構(gòu)體類型的變量。
轉(zhuǎn)載于:https://www.cnblogs.com/lulululu/p/3693875.html
總結(jié)
以上是生活随笔為你收集整理的结构体定义容易混淆的地方的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 并查集 基础 AC
- 下一篇: Uliweb多人博客教程demo站点