文档介绍:第九章结构体、共用体及枚举型
结构体
指向结构体类型数据的指针
共用体及枚举型
结构体
结构体类型的定义
结构体类型实际上就是使用不同类型的数据描述数据对象时的结构模式。例如,学生的综合信息可使用下面的数据结构模式进行描述,“xiao ming”的信息。
学号用整型数据描述即:int num;
姓名用字符串数据描述即:char name[20];
性别用字符数据描述即:char sex;
成绩用实型数据描述即:float score;
住址用字符串数据描述即:char address[30];
使用结构体类型与使用标准数据类型的区别在于:C语言为用户提供了标准数据类型说明符(如int,char,float等)供用户使用;但是却没有为用户提供通用的结构体类型说明符,因此用户需要根据编程要求自己说明所需要的结构体类型。
下面说明学生综合信息结构体类型struct student:
struct student
{
int num;
char name[20];
char sex;
float score;
char address[30];
};
上面定义了一个结构体类型,struct student(struct是关键字,不能省略),表示这是一个“结构体类型”。它包括num,name,sex,age,score,address等不同类型的数据项。应当注意:struct student是程序设计者自己定义的类型名。它和系统已定义了的标准类型(如int,char,float,double等)一样可以用来作为定义变量的类型。
定义一个结构体类型的一般形式为:
struct 结构体类型名/* struct是结构类型关键字*/
{
数据类型数据项1;
数据类型数据项2;
…………
数据类型数据项n;
}; /* 此行分号不能少!*/
花括号内是该结构体中的各个成员(或称分量),由它们组成一个结构体。例如,上例中的num,name,sex等都是成员。对各成员都应进行类型说明,即
类型标识符成员名
也可以把花括号内容称为“域表”。每一个成员称为结构体中的一个域。成员名定名规则与变量名同。成员变量的个数不限。所以用户可以根据自己的需要,说明各种不同的结构体类型。然后,用户就可像使用标准类型那样,用结构体类型说明结构体类型变量。
结构体变量的定义和引用
一、结构体变量的定义
要定义一个结构体类型的变量,可以采取以下三种方法。
(1)  先定义结构体类型在定义变量名
如上面已定义了一个结构体类型struct student,可以用它来定义变量。如:
struct student student1,student2;
定义student1和student2为struct student类型变量,即它们具有struct strudent类型的结构。
(2)  在定义类型的同时定义变量
例如:
struct student
{
int num;
char name[20];
char sex;
float score;
char address[30];
}student1,student2;
(3)  直接定义结构类型变量
其一般形式为:
struct
{
成员表列;
}变量名表列;
即不出现结构体名。