枚举类型enum

C++中定义了枚举类型enum,它的作用是一种创建符号常量的方式。

下面写一段例子:

enum COLOR {red,yellow,green,white,black,pink,purple};

其中的枚举量red,yellow···都必须是整形数值。默认的,后一个枚举量比前一个枚举量大1

如果没有给枚举量(red,yellow,green···等)赋值,默认的,第一个枚举量red默认值为0,后面依次+1,那么对应的,red的值为0,yellow的值为1,green的值为2,white的值为3,black的值为4,pink的值为5,purple的值为6。

如果你给其中的枚举量赋值,比如yellow = 3,那么red的值为0,yellow的值为3,green的值为4,white的值为5···

 

枚举(变)量做运算时,他会转化为整型去运算,但是不能把整型变量直接赋值给枚举变量,编译器无法通过编译

int main()
{
    enum COLOR {red,yellow,green = 4,white,black,pink,purple};

    COLOR color = red;

    cout << red << endl;
    cout << yellow << endl;
    cout << green << endl;
    cout << white << endl;
    cout << black << endl;
    cout << pink << endl;
    cout << purple << endl;

    cout << "test for enum:" << endl;
    cout << red + yellow << endl;
    cout << red + 2 << endl;
    cout << red + 2.3 << endl;
    cout << "color:"<<color << endl;
//    cout << color++ << endl;
    return 0;
}

下图,是枚举变量运算结果

枚举类型enum

下面,不能直接把整型变量或者整型值直接赋值给枚举变量,类型不一致。

枚举类型enum

枚举变量不支持自增自减运算符。

sizeof(枚举类型)= sizeof(int),因为枚举类型变量的值是整型int。