学习目标:
掌握结构体类型的概念
掌握结构体变量的定义及初始化
掌握结构体变量的引用
重点:
理解结构体数据类型的特点
掌握结构体变量的定义和使用
难点:
结构体变量的访问形式
结构体类型与结构体变量的区别
引言:
前面所看到的程序中,变量大多数是独立无内在联系的。但在实际生活中,有些数据是有内在联系,成组出现的,例如一个学生的学号、姓名、性别、年龄等项,是属于同一个学生的,这些数据的数据类型是不相同的,C语言允许用户建立由不同类型数据组成的组合型数据结构,它成为结构体。
一、结构体类型
结构体是一种构造数据类型。
与其他高级语言中的“记录”类似。
定义:由相互关联的不同数据类型的数据组成的有机整体。
用途:为处理复杂的数据结构提供了手段,为函数间传递不同类型的参数提供了便利。
关键字:struct
结构体类型定义:

如:
struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
注意:
1)只是声明一种数据类型并没有定义变量。
2)结构体类型定义仅描述结构体的组成,不分配内存空间
二、结构体变量的定义及初始化
1.结构体变量的定义
声明结构体类型时不分配存储单元,使用该类型定义变量时才分配存储单元。
定义变量方法3种:
1)先声明结构体类型,再定义结构体变量


2)声明结构体类型的同时定义结构体变量


只有在定义了结构体变量后系统才为其分配内存
3)直接定义结构体类型变量


2. 结构体变量的初始化
根据结构体变量的形式,结构体体变量的初始化也有三种形式。



3. 结构体类型与结构体变量的区别
1)结构体类型与结构体变量概念不同
2)类型:不分配内存;变量:分配内存
3)类型:不能赋值、存取、运算; 变量:可以赋值、存取、运算
结构体变量中的成员可单独使用,方法如普通变量;
结构体可嵌套
结构体成员名与程序中变量名可相同
三、结构体变量的引用
引用规则:结构体变量不能整体引用,只能引用变量成员
结构体变量名.成员名
成员(分量)运算符
优先级: 1
结合性:从左向右

结构体成员本身又是一个结构体类型,则需要找到最低一级的成员。


