C++基础---枚举
来源:互联网 发布:spring源码视频百度云 编辑:程序博客网 时间:2024/06/07 18:30
1. 枚举
1.1 枚举
- 枚举:是一个被命名的整型常数的集合,枚举在日常生活中很常见。
- 枚举常量:利用枚举常量,可用文字来代替数字,这样做可以使程序变得更加易懂。例如:
(1)定义了一个枚举类型名 enum WeekDay,然后定义变量为该枚举类型。
enum WeekDay{SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY};
enum WeekDay day;
(2)当然,也可以直接定义枚举类型变量。
enum WeekDay{SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY} day;
1.2 枚举的使用注意点
- 枚举元素不是变量,而是常数,因此枚举元素又称为枚举常量。
因为是常量,所以不能对枚举元素进行赋值。例如:
对枚举WeekDay的元素再作以下赋值 SUNDAY=5;MONDAY=2;SUNDAY=MONDAY; 都是错误的。 - 枚举元素本身默认由系统定义了一个表示序号的数值,从0 开始顺序定义为0,1,2…。
即枚举类型的第1个常量值默认为0。例如:
默认情况下在WeekDay中,SUNDAY值为0,MONDAY值为1,…,SATURDAY值为7。
如果在定义枚举类型时指定元素的值,也可以改变枚举元素的值。例如:
enum WeekDay{SUNDAY=7,MONDAY=1,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY}day;
这时,sun 为 7,mon 为 1,以后元素顺次加 1,所以 SUNDAY值为7,MONDAY值为1,…,SATURDAY值为6。
注:当枚举中的某个成员赋值后,其后的成员按依次加1的规则确定其值。 - 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。
如:WeekDay a; WeekDay b; a=SUNDAY; b=MONDAY; 是正确的。而a=0; b=1; 是错误的。
如一定要把数值赋予枚举变量,则必须用强制类型转换,如: a=(enum weekday)2;其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于: a=tue; 还应该说明的是枚举元素不是字符常量也不是字符串常量, 使用时不要加单、双引号。 - 枚举值可以用来作判断。
枚举值的比较规则是:按其在说明时的顺序号比较,如果说明时没有人为指定,则第一个枚举元素的值认作0。
例如:MONDAY>SUNDAY,SATURDAY>FRIDAY。 枚举的程序示例:
#include<iostream>using namespace std;int main(){ enum WeekDay{SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY}; WeekDay today = MONDAY; if(today==SATURDAY || today==SUNDAY) { cout<<"双休日"<<endl; } else { cout<<"工作日"<<endl; } system("pause"); return 0;}=>工作日
1.3 使用枚举类型对变量进行声明
方法一:枚举类型的定义和变量的声明分开
enum DAY{ MON=1, TUE, WED, THU, FRI, SAT, SUN};DAY yesterday;DAY today;enum DAY tomorrow;//变量 tomorrow的类型为枚举型enum DAYenum DAY good_day, bad_day;//变量good_day和bad_day的类型均为枚举型enum DAY
方法二:类型定义与变量声明同时进行
enum DAY{ MON=1, TUE, WED, THU, FRI, SAT, SUN} day;//变量day的类型为枚举型enum DAY
方法三:用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明
typedef enum DAY{ MON=1, TUE, WED, THU, FRI, SAT, SUN} day;//此处的day为枚举型enum DAY的别名day today, tomorrow; //变量today和tomorrow的类型为枚举型day,也即enum DAY
enum DAY中的DAY可以省略:typedef enum{ MON=1, TUE, WED, THU, FRI, SAT, SUN} day;//此处的day为枚举型enum DAY的别名day today, tomorrow; //变量today和tomorrow的类型为枚举型day,也即enum DAY
typedef enum DAY{ MON=1, TUE, WED, THU, FRI, SAT, SUN};DAY today, tomorrow; //变量today和tomorrow的类型为枚举型DAY
注:同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命名常量。
1.4 枚举的总结
- 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。
- DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。
- 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。
- 可以人为设定枚举成员的值,从而自定义某个范围内的整数。
- 枚举型是预处理指令#define的替代。
- 类型定义以分号;结束。
参考文献 :
[1]《C++全方位学习》范磊——第四章
[2] 百度搜索关键字:C++数据类型、枚举、枚举值、枚举使用的注意点
0 0
- C语言基础:枚举.宏
- C语音基础-枚举23
- C语言基础 13 枚举
- C语言基础 结构体 枚举
- C语言基础之结构体、枚举
- [C++][基础]6_枚举和类
- C,C++,C#基础一:类,结构,枚举
- C语言基础:C语言枚举 - 枚举类型的基本认识
- c\c++复习基础要点16----枚举类型
- C语言基础六_结构体、枚举
- c语言基础3—变量、结构体、枚举
- 黑马程序员——c语言基础:枚举和typedef
- C语言编程基础-15结构体 枚举 联合
- 黑马程序员-----------C语言基础-----------结构体·枚举
- 黑马程序员——C基础之枚举类型
- 黑马程序员——C语言基础---结构体、枚举
- C语言基础 枚举型变量定义与输出
- C语言基础及指针⑨联合体与枚举
- hdu1054
- iOS 学习资料整理
- 友元函数
- [LeetCode] Scramble String
- sudo apt-get命令大全
- C++基础---枚举
- Android_开源框架_Afinal
- 友元函数
- C++基础---数组
- C++基础---多维数组
- Keepalived简介
- C++基础---指针数组与数组指针
- 多线程
- 我自己的noip复习(实时更新)