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

一个枚举类型的小疑点

2012-04-01 
一个枚举类型的小问题#includestdio.h#includestdlib.hvoidmain(){enumcolor{red,yellow,blue,white,b

一个枚举类型的小问题
#include   <stdio.h>
#include   <stdlib.h>
void   main()
{
enum   color   {red,yellow,blue,white,black};
enum   color   i,j,k,pri;
i=red;
i++;//这句出错
printf( "%d\n ",i);

编译错误提示:
error   C2676:   binary   '++ '   :   'enum   main::color '   does   not   define   this   operator   or   a   conversion   to   a   type   acceptable   to   the   predefined   operator
Error   executing   cl.exe.

[解决办法]
在C++中,++后缀操作符的操作数应该是算术类型或指针,而枚举不属于算术类型。

原来的程序之所以能运行,可能是C的标准不一样(没看过),也可能是编译器的实现,毕竟在这一点上,标准并没有做强制性的要求
[解决办法]
不可以这样用,如果想用,可以不要把i定义为enum,然后再做类型转换

热点排行