问题定义:有时需要将不同类型的数据组合成一个有机的整体,以便于引用。如:一个学生有学号/姓名/性别/年龄/地址等属性int num;char name[20];char sex;
声明一个结构体类型的一般形式为:struct结构体名{成员表列};如:struct student{int num;char name[20];char sex;int age;float score;char addr[30];
可以采取以下3种方法定义结构体类型变量:(1)先声明结构体类型再定义变量名例如:struct student student1,student2;
在定义了结构体变量后,系统会为之分配内存单元。例如:student1和student2在内存中各占59个字节(2+20+1+2+4+30=59)。
注意:将一个变量定义为标准类型(基本数据类型)与定义为结构体类型不同之处在于后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型,因为可以定义出许许多多种具体的结构体类型。(2)在声明类型的同时定义变量这种形式的定义的一般形式为:struct结构体名{成员表列}变量名表列;
例如:struct student{int num;char name[20];char sex;int age;float score;char addr[30];}student1,student2;注意:(它的作用与第一种方法相同,即定义了两个struct student类型的变量student1,student2)
(3)直接定义结构体类型变量其一般形式为:struct{成员表列}变量名表列;即不出现结构体名。
注意:(2)对结构体中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。(3)成员也可以是一个结构体变量。(4)成员名可以与程序中的变量名相同,二者不代表同一对象。例如:struct date/声明一个结构体类型/int num;char name[20];char sex;int age;