enum提供了另一种创建符号常量的方式,这种方式可以代替const。它还允许定义新类型,但必须按严格的限制进行。例如,看下面的语句:
基本格式:
例:
在未进行初始化时,枚举的第一个变量,默认值为0,其后依次数值+1,对应的输出则为:red(0),blue(1),yellow(2),brown(3),green(4)。枚举具有这样的规律
注意:枚举元素的值,是不可修改的,在开始的时候说过,它可以看作为const类型。
其实,学过C的人,应该看出枚举的格式与结构体相似,其实枚举的用法和结构体大为相同。
你甚至可以进行以下的定义:
1.
2.
接下来再来深度解析枚举元素之间的规律,前面提到过,在未初始化枚举的元素时,首元素默认值为0,且后面的元素依次在前一个元素的基础上+1。那么,如果我们给枚举的元素进行初始化会怎样呢?
例:
输出结果:
发现什么规律了吗?枚举元素的特点:相邻元素差为1(从初始化元素开始向后进行)
枚举元素的值,可以相同。
再来列举一种特例:
输出结果:
通过以上的两个例子,我相信你已经能够看出枚举的特点了。(记住一点,如果未对首元素进行初始化,则首元素的默认值为0)
重点:枚举量是整型,可被提升为int类型,但是int类型不能自动转换为枚举类型。
例:int color=blue; //valid(可行)
add=3; //invalid(不可行)
color=3+red;//valid(可行)
color(int类型)在算术表达式中可以进行枚举和常规整数进行运算,但枚举类型却不能进行算术运算。
刚开始学blog,有些不妥的地方,望各位指出。(感谢大大们的阅览)