一般情況下握联,我們定義的變量之間是沒有內(nèi)在(內(nèi)存上)關(guān)系的啄糙。比如一個(gè)學(xué)生的相關(guān)信息:“int mum;char name[20];float score;”际度,雖然贡羔,年月日本身上是存在關(guān)系的廉白,但是在內(nèi)存中,它們卻不是在內(nèi)存連續(xù)的乖寒。有人自然地想到數(shù)組猴蹂,但數(shù)組中的數(shù)據(jù)必需要是同一數(shù)據(jù)類型。因此楣嘁,想要體現(xiàn)不同數(shù)據(jù)類型之間的數(shù)據(jù)的內(nèi)在關(guān)系磅轻,就要建立用戶自己的數(shù)據(jù)類型覆获,即為結(jié)構(gòu)體類型。
比如上面的學(xué)生的相關(guān)信息可以用如下的結(jié)構(gòu)體:
struct Student
{
int mum;
char name[20];
float score;
};
基本使用方法為:
struct 結(jié)構(gòu)體名
{
成員列表(域表);
};
(注意:最后一個(gè)花括號(hào)后的分號(hào)不可省略)
結(jié)構(gòu)體不僅僅有上面的類型瓢省,還有以下的類型:
struct Teacher
{
int num;
char name[20];
char address[50] ;
};
struct Date
{
int year;
int month;
int day;
};
下面舉一個(gè)例子來體現(xiàn)結(jié)構(gòu)體的作用弄息。
#include
struct Student
{
int num;
char name[20];
float score;
};
int main()
{
struct Student a={10101,"Li Lin",98.5};
printf("The date:\n");
printf ("Num:%5d\nName:%s\nScore:%6.2f\n",a.num,a.name,a.score);
return 0;
}
結(jié)果:
注:"."為成員運(yùn)算符,a.name表示a中的name成員勤婚。