一.枚举的定义:
枚举顾名思义就是列举,将所有可能性都一一列举出来,比如一周有几天,那枚举的结果就是将周一,周二,周三,周四,周五,周六,周日都一一写一遍。
二.枚举的声明
enum day
{
MON,//注意使用,不是;
TUES,
WED,
THUR,
FRI,
SAT,
SUN,
};
枚举需要注意的就是枚举成员尽可能大写
enum day
{
MON,
TUES,
WED,
THUR,
FRI,
SAT,
SUN,
};
int main()
{
enum day d=MON;
printf("%d",d);
return 0;
}
//输出结果为0
如果输出TUES结果则为1,WED结果则为2,WHUR结果则为3,一次类推,enum中的枚举成员都有自己的"枚举常量“,这些枚举常量都是从0开始,每个元素间递增1,当然这些枚举常量也是可以被改变的
enum day
{
MON=1,
TUES,
};
int main()
{
enum day d=MON;
printf("%d",d);
return 0;
}
//这个时候输出值就为1,TUES就为2(依然递增1)
如果将MON赋值1,TUES赋值3也可以
三.枚举的优点
之前也学习过自定义函数#define,同样可以定义常量,为什么选择enum?这就可以好好谈谈enum的优点了
- 得益于enum是将元素一一列举出来的特性便增强了程序的可读性以及可维护性
- 和#define定义的标识符⽐较枚举有类型检查,更加严谨。#define仅仅起到了一个替换的作用
- 枚举更方便,#define一次只能定义一个元素,但枚举可以一次定义好几个元素
- 枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤
四.枚举的应用
说了枚举的优点,那枚举还可以如何应用
enum Color
{
RED=2,
GREEN=4,
BLUE=8
};
int main()
{
enum Color c=RED;//这里不要加双引号
printf("%d",c);
return 0;
}
//输出结果为2