結(jié)構(gòu)體是一種自定義類型,它允許程序員將不同類型的數(shù)據(jù)項(xiàng)組合在一起,形成一個(gè)新的數(shù)據(jù)類型。結(jié)構(gòu)體類型是通過 struct 關(guān)鍵字來定義的。
1.結(jié)構(gòu)體類型的定義
結(jié)構(gòu)體類型定義的一般形式為:
struct 結(jié)構(gòu)體標(biāo)簽 { 成員1類型 成員1名; 成員2類型 成員2名; ……};
其中,結(jié)構(gòu)體標(biāo)簽是這個(gè)結(jié)構(gòu)體類型的名稱,成員類型表示每個(gè)數(shù)據(jù)項(xiàng)的數(shù)據(jù)類型,成員名則是每個(gè)數(shù)據(jù)項(xiàng)的名稱。
2.結(jié)構(gòu)體類型和結(jié)構(gòu)體變量的區(qū)別
結(jié)構(gòu)體類型只是定義了一種新的數(shù)據(jù)類型,而結(jié)構(gòu)體變量則是根據(jù)這個(gè)數(shù)據(jù)類型定義的實(shí)際變量。可以把結(jié)構(gòu)體類型看成是一個(gè)模板或者藍(lán)圖,而結(jié)構(gòu)體變量則是基于這個(gè)模板創(chuàng)建的具體對象。
例如,假設(shè)現(xiàn)在要定義一個(gè)描述學(xué)生信息的結(jié)構(gòu)體,那么就可以定義以下結(jié)構(gòu)體類型:
struct Student { char name[20]; int age; char gender;};
在上面的結(jié)構(gòu)體類型中,Student 是這個(gè)結(jié)構(gòu)體類型的標(biāo)簽;name、age、gender 分別是成員的名稱;char 和 int 則是成員的類型。
定義好結(jié)構(gòu)體類型之后,就可以定義以下結(jié)構(gòu)體變量:
struct Student stu1;struct Student stu2;
其中,stu1 和 stu2 都是基于 Student 結(jié)構(gòu)體類型定義的實(shí)際變量。這些變量可以像普通變量一樣被使用,例如:
strcpy(stu1.name, "小明");stu1.age = 18;stu1.gender = 'M';
以上代碼向 stu1 這個(gè)學(xué)生信息變量中賦值。