STC单片机复杂数据结构
主讲:何宾
Email :hebin@mail.buct.edu.cn
2016.03
结构
--结构类型的定义
结构类型定义的格式为:
struct 结构名
{
结构元素列表
}
其中:
结构元素列表为不同数据类型的列表。
结构
--结构类型的定义
【例16-1】结构体的声明例子
struct student{
char name[30];
char gender;
char age;
long int num;
} ;
结构
--结构变量的定义
在C语言中,提供了三种定义结构变量的方法:
在声明结构的时候定义结构变量
即在定义完结构体,也就是在}符号的后面,紧接着定义结构变量。
【例16-2】第一种声明结构体变量的例子
struct student{
char name[30];
char gender;
char age;
long int;
}stu1,stu2;
在该例子中,定义stu1和stu2是两个结构体类型的变量。
结构
--结构变量的定义
注:在该定义格式,还可以进一步简化为:
struct {
char name[30];
char gender;
char age;
long int;
}stu1,stu2;
在声明结构体后再单独定义结构变量
声明格式为:
struct 结构名 结构变量1,结构变量2,...,结构变量N
在实际使用的时候,如果变量很多,可以将这些变量整合到一个数
组内,这样更加方便操作。
结构
--结构变量的定义
【例16-3】第二种声明结构体变量的例子
struct student stu1,stu2;
注:只能对结构变量内的元素进行操作,不能对结构的元素进行操作,即:对
stu1,stu2内的元素操作是合法的,对student操作是非法的。
在C语言中,不但可以在声明结构体的时候,直接声明结构变量,
还可以同时对结构变量中的每个结构元素进行初始化。
【例16-4】在定义结构变量的同事初始化结构元素的例子
struct {
char gender;
int number;
} a={'M',20004},b={'F',20012};
结构
--结构变量内元素的引用
当定义完结构变量后,就可以引用结构变量内的元素。格式:
结构变量名.结构元素
前面已经提到在C语言中,在定义完结构后,再定义结构变量。
当定义完结构变量时,就可以通过引用结构变量内的元素对结构内
的元素进行初始化。一种是静态初始化;另一种是动态初始化。
静态初始化
静态初始化是指在声明完结构变量后,直接对结构变量内的元素进
行静态赋值。
结构
--结构变量内元素的引用
【例16-5】结构变量元素静态初始化的例子
代码清单 16-1