C語(yǔ)言中如何定義結(jié)構(gòu)體

小億
114
2023-09-04 09:18:40

在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)體名,idnameage是結(jié)構(gòu)體的成員名,分別表示學(xué)生的學(xué)號(hào)、姓名和年齡。其中,idage是整型變量,name是一個(gè)字符數(shù)組。

定義結(jié)構(gòu)體后,可以使用該結(jié)構(gòu)體來(lái)聲明結(jié)構(gòu)體變量,例如:

struct Student stu1;

上述代碼聲明了一個(gè)名為stu1Student類(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è)名為stu1Student類(lèi)型的結(jié)構(gòu)體變量。

0