C语言提供了一些基本的数据类型如int、float、double、char等。为了更好的满足用户需求,提供了用户自定义数据类型功能。用户可以根据自身需要定义数据类型,如结构体类型、共用体类型、枚举类型、类类型等。
声明 一个结构体类型的一般形式为:
struct 结构体类型名 {
成员表;
};
结构体类型名用来作为结构体类型的标志。
每一个成员也称为结构体中的一个域(field)。成员表又称为域表。
实例:定义一个结构体类型。
//声明一个结构体类型Student
struct Student {
//定义成员
int num;
char name[23];
char sex;
int age;
float score;
char addr[30];
};
该结构体类型名为Student,成员表中成员有6个。
注:结构体类型可以理解为int、float等一样的类型,所以可以定义结构体类型的变量。例:定义Student结构体类型的变量,
//声明一个结构体类型Student
struct Student {
//定义成员
int num;
char name[23];
char sex;
int age;
float score;
char addr[30];
};
//定义 Student类型的结构体变量
Student student1, student2, student3;
这里的student1, student2, student3均为结构体类型Student的变量,即每一个结构体变量都包含结构体中的成员信息。如student1这个Student结构体类型变量中包含了成员表中所有的变量。
结构体变量的定义方式有两种方法:
(1)先定义结构体,再定义结构体变量。
(2)在定义结构体类型的同时定义变量。如:
//声明一个结构体类型Student
struct Student {
//定义成员
int num;
char name[23];
char sex;
int age;
float score;
char addr[30];
}student1, student2, student3;
//定义 Student类型的结构体变量,同时3个定义结构体类
//型Student的变量student1, student2, student3
这种形式定义的一般形式为:
struct 结构体类型名 {
成员表;
}变量名表;