枚举类型enum 使用

来源:互联网 发布:淘宝火拼入口 编辑:程序博客网 时间:2024/04/30 10:36
--1. 枚举的定义
      enum 枚举名{ 枚举值表 }; 在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。
     例如:该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。
--2. 枚举变量的使用
      如同结构和联合一样,枚举变量也可用不同的方式声明,即先定义后声明,同时定义声明、直接声明

      例:enum weekday{ sun,mon,tue,wed,thur,fri,sat };   enum weekday a,b,c; (注意此处必须是enum weekday a 而不是weekday a)

             enum weekday{ sun,mon,tue,wed,thur,fri,sat }a,b,c;

             enum { sun,mon,tue,wed,thu,fri,sat }a,b,c;

------------备注------------

--1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。
例如:
sun=5;
mon=2;
sun=mon;
都是错误的。
--2. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。 

--3.只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量

例如:

a=sum;是正确的。

a=0;是错误的。

如一定要把数值赋予枚举变量,则必须用强制类型转换。a=(enum weekday)2;其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:a=tue;

--4.还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。
--枚举通常和typedef一起使用,typedef  enum { Sun,Mon,Tue,Wed,Thu,Fri,Sat }Weekday;  Weekday是该枚举类型别名,不再是枚举变量了。使用时为Weekday a,对比之前
0 0