struct 結構體名{
結構體所包含的變量或數組
};
struct stu{ char *name; //姓名 int num; //學號 int age; //年齡 char group; //所在學習小組 float score; //成績 };stu 為結構體名,它包含了 5 個成員,分別是 name、num、age、group、score。結構體成員的定義方式與變量和數組的定義方式相同,只是不能初始化。
注意大括號後面的分號;
不能少,這是一條完整的語句。
結構體也是一種數據類型,它由程序員自己定義,可以包含多個其他類型的數據。struct stu stu1, stu2;定義了兩個變量 stu1 和 stu2,它們都是 stu 類型,都由 5 個成員組成。注意關鍵字
struct
不能少。struct stu{ char *name; //姓名 int num; //學號 int age; //年齡 char group; //所在學習小組 float score; //成績 } stu1, stu2;將變量放在結構體定義的最後即可。
struct{ //沒有寫 stu char *name; //姓名 int num; //學號 int age; //年齡 char group; //所在學習小組 float score; //成績 } stu1, stu2;這樣做書寫簡單,但是因為沒有結構體名,後面就沒法用該結構體定義新的變量。
[ ]
獲取單個元素,結構體使用點號.
獲取單個成員。獲取結構體成員的一般格式為:
結構體變量名.成員名;
通過這種方式可以獲取成員的值,也可以給成員賦值:#include <stdio.h> int main(){ struct{ char *name; //姓名 int num; //學號 int age; //年齡 char group; //所在小組 float score; //成績 } stu1; //給結構體成員賦值 stu1.name = "Tom"; stu1.num = 12; stu1.age = 18; stu1.group = 'A'; stu1.score = 136.5; //讀取結構體成員的值 printf("%s的學號是%d,年齡是%d,在%c組,今年的成績是%.1f!\n", stu1.name, stu1.num, stu1.age, stu1.group, stu1.score); return 0; }運行結果:
struct{ char *name; //姓名 int num; //學號 int age; //年齡 char group; //所在小組 float score; //成績 } stu1, stu2 = { "Tom", 12, 18, 'A', 136.5 };不過整體賦值僅限於定義結構體變量的時候,在使用過程中只能對成員逐一賦值,這和數組的賦值非常類似。