在C語(yǔ)言中,可以使用struct
關(guān)鍵字來(lái)定義結(jié)構(gòu)體。結(jié)構(gòu)體可以用于存儲(chǔ)不同類(lèi)型的變量,這些變量被稱(chēng)為結(jié)構(gòu)體的成員。
結(jié)構(gòu)體的定義通常包含在函數(shù)外部,以便在程序的任何地方都可以使用。定義結(jié)構(gòu)體的一般形式如下:
struct 結(jié)構(gòu)體名稱(chēng) {
數(shù)據(jù)類(lèi)型 成員1;
數(shù)據(jù)類(lèi)型 成員2;
//...
};
其中,struct
是關(guān)鍵字,結(jié)構(gòu)體名稱(chēng)
是你給結(jié)構(gòu)體起的名字,成員1
、成員2
等是結(jié)構(gòu)體的成員名,可以是任何合法的C語(yǔ)言標(biāo)識(shí)符,數(shù)據(jù)類(lèi)型可以是任何C語(yǔ)言數(shù)據(jù)類(lèi)型,包括基本數(shù)據(jù)類(lèi)型和其他結(jié)構(gòu)體類(lèi)型。
例如,下面是一個(gè)定義了一個(gè)學(xué)生結(jié)構(gòu)體的例子:
struct Student {
int id;
char name[20];
int age;
};
在上述例子中,Student
是結(jié)構(gòu)體名,id
、name
和age
是結(jié)構(gòu)體的成員名,分別表示學(xué)生的學(xué)號(hào)、姓名和年齡。其中,id
和age
是整型變量,name
是一個(gè)字符數(shù)組。
定義結(jié)構(gòu)體后,可以使用該結(jié)構(gòu)體來(lái)聲明結(jié)構(gòu)體變量,例如:
struct Student stu1;
上述代碼聲明了一個(gè)名為stu1
的Student
類(lèi)型的結(jié)構(gòu)體變量。
在C語(yǔ)言中,也可以使用typedef
關(guān)鍵字給結(jié)構(gòu)體起一個(gè)別名,以便更方便地使用。例如:
typedef struct Student {
int id;
char name[20];
int age;
} Student;
上述代碼中,typedef
關(guān)鍵字用于給struct Student
類(lèi)型起一個(gè)別名Student
,這樣就可以直接使用Student
作為類(lèi)型名聲明結(jié)構(gòu)體變量,而無(wú)需再加上struct
關(guān)鍵字。例如:
Student stu1;
上述代碼聲明了一個(gè)名為stu1
的Student
類(lèi)型的結(jié)構(gòu)體變量。