目录
什么是枚举?
枚举就是一一列举
把可能的取值一一列举
比如现实生活中:
1.一周的周一到周日是有限的7天,可以一一列举
2.一年有12个月,可以一一列举
枚举类型的定义
//声明枚举类型,枚举关键字enum+枚举类型month
enum month //月份
{
Jan, //枚举常量
Feb,
Mar,
Apr,
May,
June,
July,
August,
Sep,
Oct,
Nov,
Dec
};
int main()
{
enum month x; //创建了一个枚举变量x
return 0;
}
以上定义的enum month就是枚举类型,{ }中的内容是枚举类型的可能取值,也叫枚举常量
这些可能取值都是有值的,默认从0开始,一次递增1
例如 :
在定义的时候也可以赋初值
赋初值后,接下来的元素仍会递增加1
注意:创建一个枚举类型对象时,初始化时要保证类型相互匹配
enum color
{
green,
red,
blue
};
int main()
{
enum color x = red; //正确初始化
enum color y = 1; //错误初始化,1是一个int类型,而y是color类型,类型不匹配
printf("%d", x); //结果是1
return 0;
}
枚举的优点
我们可以使用#define定义常量,为什么非要使用枚举,枚举的优点:
1.增加代码的可读性和可维护性 (能够做到见名知义)
2.与#define相比,枚举有类型检查,更加严谨
3.防止命名污染,#define是全局的,枚举是有作用域的
4.便于调试
5.使用方便,一次可以定义多个变量