struct 結構體名{
成員列表;
.....
}結構體變量;
結構體類型變量的定義
結構體類型變量的定義與其它類型的變量的定義是一樣的,但由於結構體類型需要針對問題事先自行定義,所以結構體類型變量的定義形式就增加了靈活性,共計有三種形式,分別介紹如下:
1) 先定義結構體類型,再定義結構體類型變量:
struct stu / *定義學生結構體類型* /
{
char name[20]; / * 學生姓名* /
char sex; / * 性別* /
long num; / *學號* /
float score[3]; / * 三科考試成績* /
};
struct stu student1,student2;/ * 定義結構體類型變量* /
struct stu student3,student4;
用此結構體類型,可以定義更多的該結構體類型變量。
struct stu / *定義學生結構體類型* /
{
char name[20]; / * 學生姓名* /
char sex; / * 性別* /
long num; / *學號* /
float score[3]; / * 三科考試成績* /
};
struct stu student1,student2;/ * 定義結構體類型變量* /
struct stu student3,student4;
用此結構體類型,可以定義更多的該結構體類型變量。
2 ) 定義結構體類型同時定義結構體類型變量:
struct data
{
int day;
int month;
int year;
} time1,time2;
也可以再定義如下變量:
struct data time3,time4;
用此結構體類型,同樣可以定義更多的該結構體類型變量。
struct data
{
int day;
int month;
int year;
} time1,time2;
也可以再定義如下變量:
struct data time3,time4;
用此結構體類型,同樣可以定義更多的該結構體類型變量。
3) 直接定義結構體類型變量:
struct
{
char name[20]; / *學生姓名* /
char sex; / *性別* /
long num; / *學號* /
float score[3]; / *三科考試成績* /
} person1,person2; / *定義該結構體類型變量* /
該定義方法由於無法記錄該結構體類型,所以除直接定義外,不能再定義該結構體類型變量。
struct
{
char name[20]; / *學生姓名* /
char sex; / *性別* /
long num; / *學號* /
float score[3]; / *三科考試成績* /
} person1,person2; / *定義該結構體類型變量* /
該定義方法由於無法記錄該結構體類型,所以除直接定義外,不能再定義該結構體類型變量。
4)
在C中定義一個結構體類型要用typedef:
typedef struct Student
{
int a;
}Stu;
於是在聲明變量的時候就可:Stu stu1;
如果沒有typedef就必須用struct Student stu1;來聲明
這里的Stu實際上就是struct Student的別名。
另外這里也可以不寫Student(於是也不能struct Student stu1;了)
typedef struct
{
int a;
}Stu;
typedef struct Student
{
int a;
}Stu;
於是在聲明變量的時候就可:Stu stu1;
如果沒有typedef就必須用struct Student stu1;來聲明
這里的Stu實際上就是struct Student的別名。
另外這里也可以不寫Student(於是也不能struct Student stu1;了)
typedef struct
{
int a;
}Stu;
https://www.cnblogs.com/ransn/p/5132352.html