一、枚举变量的定义
enum 枚举类型名{常量1,常量2,常量3,。。。};
(1)编译时对枚举变量按照常量处理,他们不是变量,不能将他们按照变量在外面赋值;
(2)枚举元素作为变量,他们是有值得,当未给它们进行赋值时:enum weekday(sun,mon,tue,wed,thu,sat);编译器按照定义的顺序,依次给每个元素赋值0,1,2,3。。。;也可以用“=给他们赋值,而且该整数+1,就是下一个元素的默认值;
#include<iostream>
using namespace std;
int main()
{
enum weekday{sun=12,non=1,tue,sat}workday;
//sun =1;常量不能作为左值;
workday = sat;
cout<<workday<<endl;
}
(3)赋给枚举元素值必须是整型常量表达式;
二、枚举变量的定义
在定义枚举类型后,要定义该类型的变量才能够引用;
<1>enum weekday{sun,non,tue,wed,thu,fri,sat};
weekday workday;
<2> enum weekday{sun,non,tue,wed,thu,fri,sat} workday;
<3>enum {sun,non,tue,wed,thu,fri,sat}workday;
注意:1、变量可以取得值应该属于已经定义的枚举类型,而且只能是枚举类型的元素之一;
2、一个整数不能直接赋给枚举变量,他们是属于不同的类型:workday = 1;这是不对的;
3、如果需要整数值赋值给枚举变量,应该先进行强转:workday = (enum weekday)2;它相当于把enum weekday 中元素值为2的元素赋值给workday,即tue给了workday;
4、枚举变量的元素,也可已经比计较:if(mon > sat){...};实际比较的是俩个元素的真是实值;