枚举类型
目录1. 定义
枚举是用来代表整数常量的符号
默认形式:
enum 枚举名 {枚举元素, ...};
2. 枚举元素的值
2.1 默认
枚举元素的值,默认从0开始,逐项+1
// 从SUNDAY开始,值分别是0,1,……,6
enum DAY {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY,FRIDAY, SATURDAY};
2.2 全部赋值
// 枚举元素的值以赋值结果为准
enum DAY {
SUNDAY = 20,
MONDAY = 30,
TUESDAY = 100,
WEDNESDAY = 1024,
THURSDAY = 580,
FRIDAY = 699,
SATURDAY = 21
};
2.3 部分赋值
与默认情况相同,在枚举元素无赋值的情况下,值默认为上一枚举元素的值+1,首个枚举元素的值默认为0。
// SUNDAY = 0,TUESDAY = 31,WEDNESDAY = 32
// 其余枚举元素的值以赋值结果2为准
enum DAY {
SUNDAY,
MONDAY = 30,
TUESDAY,
WEDNESDAY,
THURSDAY = 580,
FRIDAY = 699,
SATURDAY = 21
};
3. 枚举变量的定义方式
3.1 先定义枚举类型,再定义枚举变量
// 定义枚举类型
enum DAY {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
};
// 定义枚举变量
enum DAY day;
3.2 同时定义枚举类型和枚举变量
enum DAY {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
} day; // 已经完成了对于枚举变量day的定义
3.3 忽略枚举名,直接定义枚举变量
enum {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
} day; // 仅定义了枚举变量day
3.4 结合typedef关键字
使用typedef
关键字,创建了一个新的类型名,简化了enum
类型的声明,无需再写enum
。
typedef enum {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
} DAY;
DAY today = WEDNESDAY; // 无需写成enum DAY day;
4. 总结
- 例子中各枚举元素的值分别是多少?
enum day {
SUNDAY,
MONDAY = 30,
TUESDAY,
WEDNESDAY,
THURSDAY = 580,
FRIDAY = 699,
SATURDAY = 21
};
- 请说明枚举类型4种定义方式,并举出具体的例子。