C/C++結構體語法總結


結構體簡介
結構體屬於聚合數據類型的一類,它將不同的數據類型整合在一起構成一個新的類型,相當於數據庫中一條記錄,比如學生結構體,整合了學號,姓名等等信息。結構體的好處就是可以對這些信息進行整體管理操作,類似面向對象中類的屬性,有了結構體,我就可以更好抽象描述一個類別,個人感覺類就是由結構體發展而來的。在C/C++中,結構體聲明的關鍵字為struct。

C語言結構體語法
第一種語法表示
struct 結構體名稱{
   數據類型 member1;
   數據類型 member2;
};
這種方式在聲明結構體變量時為:struct 結構體名稱 結構體變量名
example :

#include<stdio.h>
struct Student{
int sNo;
char name[10];
};
int main(){
struct Student stu;
scanf("%d",&stu.sNo);
scanf("%s",stu.name);
printf("%d\n",stu.sNo);

第二種語法表示
typedef struct 結構體名稱{
   數據類型 member1;
   數據類型 member2;
}結構體名稱別名;
這種方式在聲明結構體變量時有兩種方式。

第一種:struct 結構體名稱 構體變量名
第二種:結構體名稱別名 結構體變量名

原因:這里使用了typedef關鍵字,此關鍵字的作用就是聲明數據類型的別名,方便用戶編程,所以這里用了之后,結構體名稱別名就相當於struct 結構體名稱。在聲明結構體變量時,就無需寫struct了。
example:

#include<stdio.h>
typedef struct Student{
int sNo;
char name[10];
}Stu;
int main(){
struct Student stu; //方式一
Stu stu1; //方式二
scanf("%d",&stu.sNo);
scanf("%s",stu.name);
printf("%d\n",stu.sNo);
scanf("%d",&stu1.sNo);
scanf("%s",stu1.name);
printf("%d\n",stu1.sNo);
}

第三種方式
struct 結構體名稱{
   數據類型 member1;
   數據類型 member2;
}結構體變量名;

相當於:

struct 結構體名稱{
   數據類型 member1;
   數據類型 member2;
};
struct 結構體名稱 結構體變量名;

這種方式既定義了結構體名稱,同時聲明了一個結構體變量名。在其它地方也可以通過struct 結構體來再次聲明其它變量,而第四種方法則不可以。
example:

#include<stdio.h>
struct Student{
int sNo;
char name[10];
}stu; //此處stu 是變量名
int main(){
scanf("%d",&stu.sNo);
scanf("%s",stu.name);
printf("%d\n",stu.sNo);
}

第四種方式
struct {
   數據類型 member1;
   數據類型 member2;
}結構體變量名;

此方式是匿名結構體,在定義時同時聲明2個結構體變量,但不能在其它地方聲明,因為我們無法得知該結構體的標識符,所以就無法通過標識符來聲明變量。
example:

#include<stdio.h>
struct {
int sNo;
char name[10];
}stu,stu1; //匿名結構體,同時定義了2個結構體變量
int main(){
scanf("%d",&stu.sNo);
scanf("%s",stu.name);
printf("%d\n",stu.sNo);
scanf("%d",&stu1.sNo);
scanf("%s",stu1.name);
printf("%d\n",stu1.sNo);
}

C++語言結構體語法
C++語言結構體語法的C大同小異,聲明結構體變量時可以省略struct 其它無變化!
具體參照C語言部分,在用到“struct 結構體名稱”時,可以簡寫為“結構體名稱”來聲明


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM