【C++知识点】枚举类型

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📚专栏地址:C/C++知识点
📣专栏定位:整理一下 C++ 相关的知识点,供大家学习参考~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
🎏唠叨唠叨:在这个专栏里我会整理一些琐碎的 C++ 知识点,方便大家作为字典查询~

枚举类型

枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。

//语法
enum <类型名> {<枚举常量表>};
  1. 关键字enum:指明其后的标识符是一个枚举类型的名字。
  2. 枚举常量表:由枚举常量构成。

“枚举常量"或称"枚举成员”,是以标识符形式表示的整型量,表示枚举类型的取值。枚举常量表列出枚举类型的所有取值,各枚举常量之间以==","间隔==,且必须各不相同。取值类型与条件表达式相同。

//枚举类型的定义
enum color {RED, BLUE, WHITE, BLACK}; //定义枚举类型color
enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; //定义枚举类型week

枚举常量代表该枚举类型的变量可能取的值,编译系统为每个枚举常量指定一个整数值。

默认状态下,这个整数就是所列举元素的序号,序号从0开始。

可以在定义枚举类型时为部分或全部枚举常量指定整数值,在指定值之前的枚举常量仍按默认方式取值,而指定值之后的枚举常量按依次加1的原则取值。

各枚举常量的值可以重复。

enum fruit { apple, orange, banana = 1, peach, grape }
//枚举常量apple=0,orange=1, banana=1,peach=2,grape=3。
enum week { Sun = 7, Mon = 1, Tue, Wed, Thu, Fri, Sat };
//枚举常量Sun,Mon,Tue,Wed,Thu,Fri,Sat的值分别为7、1、2、3、4、5、6

枚举常量只能以标识符形式表示,而不能是整型、字符型等文字常量。

enum letter {'a','b','c'}; //枚举常量不能是字符常量
enum year{2022,2023,2024,2025}; //枚举常量不能是整型常量
enum letter {a,b,c};
enum year{y2022,y2023,y2024,y2025};

使用枚举变量

定义枚举类型之后,就可以定义该枚举类型的变量。

//语法
enumName enumVarName;//枚举名 枚举变量名;         

enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
week w1,w2;

//类型与变量同时定义,类型名可省略
enum {Sun, Mon, Tue, Wed, Thu, Fri, Sat} w1,w2;

枚举变量的值只能取枚举常量表中所列的值,就是整型数的一个子集。

枚举变量占用内存的大小与整型数相同。

枚举变量只能参与赋值和关系运算以及输出操作,参与运算时用其本身的整数值

enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
week weekday1,weekday2;
weekday1 = Sun; //正确
//weekday1 = San;//错误 只能取枚举常量表中所列的值,就是整型数的一个子集。

enum week { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
week weekday1, weekday2;
weekday1 = Sun;
weekday2 = Mon;
if (weekday1 < weekday2) { 
    //只能参与赋值和关系运算
    cout << “day1 < day2”;
}
cout << weekday2 << endl;//输出操作
cout << weekday1 + weekday2 << endl;
int num = weekday1;

枚举变量可以直接输出,但不能直接输入。

不能直接将常量赋给枚举变量。

不同类型的枚举变量之间不能相互赋值。

枚举变量的输入输出一般都采用switch语句将其转换为字符或字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值