c语言的枚举类型

       今天发现对C语言中的枚举类型不熟悉,在学校的时候仅仅是知道有这个类型,但今天看公司大神写的代码里把枚举类型用得贼溜。而我还是菜鸟看不懂,只好重拾以前的课本,再好好专研枚举类型的用法。

       如果一个变量只有几种可能的值,可以定义为枚举类型,所谓的“枚举”就是把可能的值一一罗列出来,但是变量的值只限于罗列出来的值得范围内。

声明枚举类型用enum开头。例如


 enum Weekday{sum,mon,tue,wed,thu,fri,sat};

     也可以不声明有名字的枚举类型,而直接定义枚举变量,例如:

 enum{sun,mon,tue,wed,thu,fri,sat} workday,weekend;


      可以用枚举类型来定义枚举变量,枚举变量的取值仅限于枚举类型所罗列的值;例如

enum Weekday(枚举类型)      workday,weekend(枚举变量);

      workday和weekend被定义为枚举变量,花括号中的sum,mon,...,sat称为枚举元素或枚 举常量。枚举变量workday和weekend的取值只能是sun到sat之间。

  workday=mon;//正确

  weekend=sun;//正确

   weekend=monday;//错误,monday不是指定的枚举元素之一。


说明:


(1)C编译对枚举类型的枚举元素是按常量处理,故称枚举变量。因此不能对枚举元素赋值。

(2)枚举元素本身由系统本身定义了一个表示序号的数值,从0开始顺序定义为0,1,2,3,4.......等。

(3)只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:

  workday=mon;//正确

    workday=1;//错误

(4)如一定要把数值赋予枚举变量,则必须用强制类型转换。 如:

  workday=(enum weekend)1;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值