关于枚举的问题,,求助!!#include stdio.hint main(){enum Numbers{red,blue}blue++printf(%d\n,blue
关于枚举的问题,,求助!!
#include <stdio.h>
int main()
{
enum Numbers{red,blue};
blue++;
printf("%d\n",blue);
return 0;
}
枚举常量不是都是整型的吗???为什么我这样会报错???谭浩强书上也是这么说的,。。。。
而下面的就可以完美打印出来,,这是为什么???真心求教。。。。
#include <stdio.h>
int main()
{
enum Numbers{red,blue};
printf("%d\n",blue+1);
return 0;
}
[解决办法]
枚举类型是个常量,blue++实际上等效于blue = blue+1, 常量的值是不能改变的; 而printf("%d\n",blue+1); 是取出blue的值然后加上1 再printf出来,并没有改变blue的值
[解决办法]
enum Numbers{red,blue};
Numbers num = blue;
num++;
这样可以。。
[解决办法]
“对枚举元素按常量处理。它们不是变量,不能对它们赋值”
——《C++程序设计》谭浩强 P222
blue++;这样显然是错的
