十三、结构类型(1)——枚举
常量符号化
用符号而不是具体的数字来表示程序中数字。
枚举
用枚举而不是定义独立的const int变量
(1)枚举是一种用户定义的数据类型,它用关键字 enum 以如下语法来声明:
enum 枚举类型名字 {名字0, ... ,名字n};
(2)枚举类型名字通常并不真的使用,要用的是在大括号里的名字,因为它们就是常量符号,它们的类型是int,值则依次从0到n。如:
enum colors { red, yellow, green};
(3)就创建了三个常量,red的值是0,yellow的值是1,而green的值是2。
(4)当需要一些可以排列起来的常量值时,定义枚举的意义就是给力这些常量值名字。
(5)枚举量可以作为值
(6)枚举类型可以跟上enum作为类型
(7)但是实际上是以整数来做内部计算和外部输入输出的。
套路:自动计数的枚举
这样需要遍历所有的枚举量或者需要建立一个用枚举量做下标的数组的时候很方便了。
枚举量
声明枚举量的时候可以指定值
enum COLOR {RED=1,YELLOW,GREEN=5};
枚举只是int
即使给枚举类型的变量赋不存在的整数值也没有任何warning或error。
(1)虽然枚举类型可以当作类型使用,但是实际上很少(不好)用。
(2)如果有意义上排比的名字,用枚举比const int 方便
(3)枚举比宏(macro)好,因为枚举有int类型。