一般情况下,我们定义的变量之间是没有内在(内存上)关系的。比如一个学生的相关信息:“int mum;char name[20];float score;”,虽然,年月日本身上是存在关系的,但是在内存中,它们却不是在内存连续的。有人自然地想到数组,但数组中的数据必需要是同一数据类型。因此,想要体现不同数据类型之间的数据的内在关系,就要建立用户自己的数据类型,即为结构体类型。
比如上面的学生的相关信息可以用如下的结构体:
struct Student
{
int mum;
char name[20];
float score;
};
基本使用方法为:
struct 结构体名
{
成员列表(域表);
};
(注意:最后一个花括号后的分号不可省略)
结构体不仅仅有上面的类型,还有以下的类型:
struct Teacher
{
int num;
char name[20];
char address[50] ;
};
struct Date
{
int year;
int month;
int day;
};
下面举一个例子来体现结构体的作用。
#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;
}
结果:
注:"."为成员运算符,a.name表示a中的name成员。