C语言中枚举本质就是整型,枚举变量可以用任意整型赋值。而 C++中枚举变量,只能用被枚举出来的元素初始化。例如我们定义如下枚举:
enum season
{
SPR,
SUM,
AUT,
WIN
};
在main函数中使用:
int main(void)
{
enum season s = SPR;
return 0;
}
按照枚举被发明的初衷,s应该只能等于 SPR、SUM、AUT或WIN,可在C语言中,
enum season s = 100;
这样的定义是可以的:

而在C++中,是编译不过去的:

我们再来看看枚举的副作用:
int main(void)
{
enum season s = SPR;
return 0;
}
按照枚举被发明的初衷,s应该只能等于 SPR、SUM、AUT或WIN,可在C语言中,
enum season s = 100;
这样的定义是可以的:
而在C++中,是编译不过去的:
我们再来看看枚举的副作用:
在C语言中我们常常使用define来定义常量,而在C++中则常使用enum枚举:
在代码中我们可以看到,SPR被赋予了0,后面的也被依次按顺序赋值。
不过我们在使用C++的枚举时,常常省略season,直接这样:
当然我们也可以改变枚举里面元素的值:
这样同样会使枚举里的其他元素相应的改变。
Kyrie Irving___全.