一、枚举
- enum typename {标识符[=整型常数],...};
- 作用:自定义值域;增加代码可读性
- 从语法角度看,枚举元素是命名常量,枚举元素没有赋初值的话实际值为0,1...没有指定值的枚举元素,其值为前一元素加 1
- 从应用角度看,可以将枚举元素看作字面常量,如3.14是double类型的字面常量
- 枚举类型的值可以直接赋值给整型变量(自动类型转换)
- 整型数值不能直接赋值给枚举类型变量,但可以强制类型转换
- 枚举变量不能自增
- 不能通过cin和cout直接输入输出枚举元素值,只能通过判断处理,一般用switch语句
二、结构
- struct typename{定义成员变量的列表};
- 用成员运算符.访问成员变量:结构变量.成员名
- 结构变量不能作为整体进行I/O、算数和比较操作,但可以作为整体进行同类型的赋值操作
- 结构变量可以作为函数参数(值形参or引用形参)和返回值
- 层次结构:结构嵌套结构
- 与类的区别:struct访问控制方式默认public,class访问控制方式默认private
- 如果结构体的全部数据成员都是公共成员,没有用户定义的构造函数,没有基类和虚函数,可以用初始化列表进行初始化
三、共用体
- 存储多种不同类型的变量,但每个实例只能是一种变量
- 联合体内存空间由占用内存空间最大的变量以及内存对齐决定