枚举类型_C++

C++经典知识拾遗

第003篇:枚举类型的使用


1.枚举类型的定义

C++的enum工具提供了一种创建符号常量的方式 (还有宏定义和const限定符),这种方式可以代替const和宏定义,它还允许定义新类型,但必须按严格的限制进行,使用enum的句法与使用结构体相似:

如下面的语句:

    enum spectrum{
   red, orange, yellow, green, blue, violet, indigo, ultraviolet};
    cout << red << endl;
    cout << green << endl;

运行结果为:
在这里插入图片描述

上边那条声明语句完成两项工作:
1.让spectrum成为新类型的名称,此时spectrum被称为枚举( enumeration)类型,就像struct变量被称为结构类型一样。
2.将red , orange , yellow等作为符号常量,它们对应整数值0~7,这些常量叫作枚举量( enumerator ),在默认情况下编译器将整数值赋给枚举量,第一个枚举量的值为0,第二个枚举量的值为1,依次类推。

直接输出就能看到对应的值,这就是最简单的定义及使用。

2.设置枚举量的值

前边说过,枚举定义时默认对应的整数值从0开始,那么如何设置自己想要的值呢?

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

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

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

enum bigstep{
   first, second = 100,third);

这里,first在默认情况下为0, 后面没有被初始化的枚举量的值将比其前面的枚举量大1, 因此,third的值为101。

当然,也可以创建多个值相同的枚举量:

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

其中,zero和 null都为0,one和 numero_uno都为1。在C++早期的版本中,只能将int值(或提升为int 的值)赋给枚举量,但这种限制取消了,现在可以使用long甚至 long long类型的值(注意,都是整型)

3.获取枚举的取值范围

为了讲解枚举类型的赋值问题,这里有必要先讲解一下什么是枚举的取值范围。

所谓取值范围就是上界和下界两个值,那么如何求这两个值呢?

为了寻找上界,我们首先需要找到枚举量的最大值,找到大于这个最大值的、最小的2的幂,将它减去1,得到的便是枚举类型取值范围的上界,如果没听懂没关系,我这里举一个例子:

假设有枚举定义如下:

enum bigstep{
   first, second = 100,third);

在这里了,bigstep里最大值枚举值是third,也就是数字101, 在2的幂中,比这个数大的最小值为128,因此取值范围的上限为127, 要计算下限,需要知道枚举量的最小值, 如果它不小于0,则取值范围的下限为0; 否则,采用与寻找上限方式相同的方式&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值