c++入门006 枚举用法

枚举常用enum工具来创建符号常量,用于与switch结合。

——————————————————————————————————————————————————————————————————————————————————————————————————

 

1.枚举量的声明

 

c++的enum工具提供了另一种创建符号常量的方式,这种方式可以代替const。它还允许定义新类型,但必须按限制进行。例:

<strong>enum spectrum{red,orange,yellow,green,violet,indigo,ultraviolet};</strong>

 

这条语句完成两项工作:

  • 让spectrum成为新类型的名称:spectrum被称为枚举,就像struct变量被称为结构一样。
  • 将red、orange、yellow等作为符号常量,他们对应整数值0~7。这些常量叫 枚举量

默认情况将整数值赋给枚举量,第一个为0,第二个为1,依次类推。

 

可以用枚举名来声明这种类型的变量:

spectrum band;

枚举变量具有一些特殊的属性:

1.在不进行强制类型转换的情况下,只能将 定义枚举时使用的枚举量 赋给 枚举的变量。

band = blue;//true
band = 2000;//error

因此spactrum变量只能有8个可能值。

 

2.对于枚举,只定义了赋值操作符。它没有定义算术运算

但它可以提升至int型,导致它可以与int型变量进行算数运算。(允许提升到long)

例:

++band;//error
band=orange+red;//error
int color=blue;
color=3+red;//true

 

2.设置枚举量的值(初始化)

 

 

可以使用赋值来显式地设置枚举量的值:

 

enum bits{one=1,two=2,four=4,eight=8};

 

指定的数必须是整数。也可以只显式地定义其中一些枚举量的值:

 

enum bigstep{first,secend=100,third};

这里没有初始化的first默认为0,后面没有被初始化的枚举量的值将比前面的枚举量大1,所以third=101;

 

 

可以创造多个值相同的枚举量:

 

enum{zero,null=0,one,numero_uno=1};

zero和null都为0。one和numero_uno都为1.
 

 

3.枚举的取值范围

c++具有强制类型转换,增加了可赋给枚举变量的合法值。

每个枚举量都有自己的取值范围(range),通过强制转换,可以将范围中任意整数赋值给枚举变量,即使整数不是枚举量。

 

enum bits{one=1,two=2,four=4,eight=8};
bits myflag;

则下面的代码是合理的:

 

 

myflag=bits(6);

其中6不是枚举量,但它位于枚举定义的取值范围。

取值范围定义:

 

首先找出上限(枚举量的最大值 8)。找到大于上限的最小2次幂,再-1,得出的便是取值范围上限。再求枚举量最小值,如果它不小于0,则取值范围的下限为0;否则采取与上限相同的方法。如最小为-6,比它小的2次幂为-8,所以下限为-7;

 

4.与switch

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值