根据需要创建数据类型
这章是参考书的最后一章,组要讲了不同的结构体,还包括一点点数据结构的知识
8.1 定义和引用结构体变量
8.1.1 创建结构体
结构体实际是包含很多变量的数据结构,不同于数组,数组只能存储类型相同的的变量,结构体则可以定义不同的类型变量,一般说这些变量都是有关系的;
结构体变量在内存上互不干扰,根据声明的顺序
8.1.2 定义结构体变量
1.先声明类型,再定义变量
1 2
| struct student student1,student2;
|
2.声明类型体同时声明变量
1 2 3 4 5 6 7 8 9 10 11 12
| struct student { int num; char name[20]; }student1,student2;
|
3.不指定类型名,直接定义结构体类型变量
1 2 3 4 5 6 7 8 9 10 11 12
| struct { int num; char name[20]; }student1,student2;
|
8.1.3 引用结构体变量
用运算符号.
引用
8.2 结构体数组
8.2.1 定义结构体数组
1.先声明类型,再定义结构体数组
1 2 3
| struct Person student[10];
|
2.一般形式
1 2 3 4 5 6 7 8 9 10 11 12
| struct Person { int num; char name[20]; }student[10];
|
结构体数组的初始化就是给数组赋值
8.3 结构体指针
结构体指针指向的是结构体变量的起始位置
8.3.1 指向结构体变量的指针
假设定义了一个指向结构体变量a的指针*p
1 2 3
| a.成员名; (*p).成员名; p->成员名;
|
不能给指针p赋一个地址
8.5 枚举类型
枚举是一种基本数据类型,可以让数据更简洁
1
| enum 枚举名 {枚举元素1,枚举元素2,···};
|
8.5.1定义枚举变量
1、先定义枚举类型,再定义枚举变量
1 2 3 4 5 6
| enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN }; enum DAY day;
|
2、定义枚举类型的同时定义枚举变量
1 2 3 4
| enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN } day;
|
3、省略枚举名称,直接定义枚举变量
1 2 3 4
| enum { MON=1, TUE, WED, THU, FRI, SAT, SUN } day;
|
- 枚举变量是个标识符,不可赋值
- 枚举元素默认值为0,1,2,3,···