1.什么是枚举?
宏定义先出现,用来解决符号常量的问题;后来人们发现有时候定义的符号常量彼此之间有关联(多选一的关系),用宏定义来做虽然可以但是不贴切,于是乎发明了枚举来解决这种情况。
枚举是一种自定义类型,类似于我们所学c语言中的结构体Struct。
如何用?看如下图:
在如下运用中,我们须注意,最后一个例子sunday可以不用加分号“;”。
2.具体怎么样才算是枚举?
将身边的实物一样列举,可以是衣柜中的每件衣服,可以是一个月每天的日期,也可以是一个笔盒中所有笔的颜色。如果我们想一一描述这些值,可以使用枚举一一列举。
3.关于枚举使用注意事项
请看如下代码:
使用了enum color类型定义了一个colorcolor的变量,其值为green。
注:1.枚举中的例子均是常量,是有数值的。如果没有特别申明,则第一个数green值为0,从green往后一次加1,则最后的red值为3。
2.这些叫做枚举常量,既然叫做枚举常量,则意味着这些值不能被修改,如在int main函数中将red=7,程序必定会报错。
虽然不能刻意修改其值,但我们可在enum中将其赋值
此时yellow值为5,则green值为6,red值为7;但blue值仍为0(别误以为往前就减1,blue为4。。。。)从哪开始赋值,就从哪开始往后逐个加1。
也可以全部都赋初值,如下图:
5.那么,使用枚举到底有什么优点?
a.增强代码的可读性和可维护性。
我们可以按照自己的情况把它们的名字设置成我们容易理解的,然后替换0,1,2,3,4…这些数字。
这样有时候就可以达到增强代码可读性的目的。
除此之外,还有其他的好处,比如b.防止了命名的污染(封装)
c.便于调试
d.使用方便,一次可以定义多个常量
6.补充
对枚举型的变量可以直接赋任意整数值,如果赋值浮点数,也会自动去掉小数部分。
赋整数值时,可直接赋值,因为枚举的本质就是整型(int)数据的集合。