首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于enum的有关问题

2012-12-31 
关于enum的问题enum color {black, white, blue, green}enum color c这种没有赋值的枚举类型取值依次为0

关于enum的问题


enum color {black, white, blue, green};
enum color c;

这种没有赋值的枚举类型取值依次为0,1,2,3
当c = black;时 c+1即为c = white;
可是如果是这种情况呢?

enum color {black = 1, white = 3, blue = 7, green = 10};
enum color c;

如果我这么写就无法通过加一个常数的方法来去枚举类型里面的下一个值了
假如在for循环我要他一次取值那语句该怎么写??

ps:可能这个问题没什么意义,希望那些回答诸如:“枚举类型没必要这样赋值”的朋友们就不要发言了,因为我问这个问题仅仅为了满足个人的好奇心,不为实用!
[解决办法]
引用:
可以换java等其它编程语言。
可以换成是人类的语言,诸如英语、汉语等。。。
[解决办法]
引用:
C/C++ code

enum color {black, white, blue, green};
enum color c;


这种没有赋值的枚举类型取值依次为0,1,2,3
当c = black;时 c+1即为c = white;
可是如果是这种情况呢?

C/C++ code

enum color {black = 1, white = 3, blue = 7……


c+1不能编译通过吧,不知道lz使用的什么编译器,反正我在VC编译时通不过的,不能进行赋值操作的。
更不能用循环for了。
我也在一本书里看见过这样写的:
for( c = black ; c <= green ; c++);
但我始终通不过编译的。
[解决办法]
引用:
把要枚举的值实现存在一个数组里,然后遍历数组




enum color {black = 1, white = 3, blue = 7, green = 10};
enum color c;

int color_values[] = {black, white, blue, green};
int cc = color_values[3];

但是 c = color_values[3]; 就是非法的。

只能 c = green;

反过来 cc = c; cc = green; 都是可以的。

热点排行