✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📚专栏地址:C/C++知识点
📣专栏定位:整理一下 C++ 相关的知识点,供大家学习参考~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
🎏唠叨唠叨:在这个专栏里我会整理一些琐碎的 C++ 知识点,方便大家作为字典查询~
枚举类型
枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。
//语法
enum <类型名> {<枚举常量表>};
- 关键字enum:指明其后的标识符是一个枚举类型的名字。
- 枚举常量表:由枚举常量构成。
“枚举常量"或称"枚举成员”,是以标识符形式表示的整型量,表示枚举类型的取值。枚举常量表列出枚举类型的所有取值,各枚举常量之间以==","间隔==,且必须各不相同。取值类型与条件表达式相同。
//枚举类型的定义
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语句将其转换为字符或字符串。