一、为什么要使用结构体
有如下问题:存储一个班级中 5 名学员的信息(学号、姓名、性别和成绩)。
解决方案:使用数组你会发现只能存储如上问题的一个属性。
“结构” 是一种构造数据类型,它是由若干数据项组合而成的复杂数据对象,这些数据项称为结构的成员。
二、结构体类型的声明
struct student
{
int num;
char name[20];
char sex;
float score;
};
间接定义法:
声明一个类型为 student 结构的变量,将会为该变量分配内存,大小是大于或等于其所有成员变量的大小之和。
struct student
{ long num;
char name[20];
char sex;
int age;
float score;
};
说明:即它们具有struct student类型的结构,一个结构体变量中的成员占用内存中连续的存储空间
直接定义法
直接定义法是定义结构体类型的同时定义结构体变量。 定义的一般形式如下:
struct [结构体名]
{
数据类型1 成员名1;
数据类型2 成员名2;
………
}变量列表;
定义了结构体变量以后,我们就可以引用这个变量。方法类似于数组元素的引用,即一般不能直接引用结构体变量,赋值、输入、输出、运算等操作都是通过结构体变量的成员来实现的。 引用结构体变量中的成员的格式为:
结构体变量名.成员名
三、使用结构体注意事项
引用结构体变量应注意以下几点: ①成员名可以与程序中的普通变量名相同,但二者不代表同一对象。 ②不能将一个结构体变量作为一个整体输入、输出和赋值。 ③如果成员本身又是一个结构体类型,则要用若干个成员运算符, 一级一级的引用到最低一级的成员。 ④结构体变量的成员可以像普通变量一样进行各种运算。 ⑤可以引用结构体变量成员的地址,也可以引用结构体变量的地址。