首先,关于枚举类型的详细介绍,见https://www.runoob.com/w3cnote/cpp-enum-intro.html
枚举常量最重要的特点在于它是由编译系统指定的一个整数值
代码
#include<iostream>
using namespace std;
int main()
{
enum color { blue, red, green, yellow }a, b, c;//定义枚举类型变量a,b,c
a = blue;//将枚举元素赋给变量
b = red;
c = green;
int d;
d = yellow;
cout << a << endl;
cout << b << "\t" << c << endl;
cout << a + c << endl;
cout << d << endl;
cout << blue<< endl;
return 0;
}
运行结果
思考及假想
可以看出,枚举变量a,b,c实际存储的是一个对应的整数,枚举常量blue, red, green, yellow存储的本身也是一个对应的整数,且默认从0开始,逐个加1,当给某一个枚举常量指定默认值时,其前面的枚举常量默认从0开始,逐个加1,其后面的枚举常量逐个加1。当我定义一个枚举类型再定义一个枚举变量时,先是枚举常量存储了其对应的整数,然后将枚举常量赋给枚举变量时,枚举变量存储了这个整数,但实际的信息,如blue,red等好像并没有被存储,初步推测这些原始信息由该枚举类型color存储,但本人暂且不知如何输出有关color的信息。还有,枚举常量和枚举变量存储的都是整数,从0开始,那么这个无符号整型的支持范围是多少,是否会超过它的支持范围,当超过这个支持范围时,会出现何种问题。