枚举
把一种类型可以等于的值全部列举出来,除此以再赋其它值就是非法的。
注意:这只一种美好的愿望,而实际上为了提高运行速度,编译器并没有做检查,因此枚举变量是可以用整数来赋值的(我猜测枚举就是使用unsigned int模拟的)。
enum Role {STUDENT=3,TEACHER=5,ADMIN=7};
enum Role role = STUDENT;
为什么使用枚举:可以把意义的整数使用一个单词来替代,这样可以提高代码的可读性。
还可以定义匿名枚举:
enum {STUDENT,TEACHER,ADMIN};
printf("%d %d %d\n",STUDENT,TEACHER,ADMIN);
可以给枚举成员赋初始值:
enum Role{STUDENT,TEACHER,ADMIN};
后面的成员逐渐加1。
枚举的值可以放在case语句后面,因此可以确定枚举成员是常量,不可以被赋值。