枚举
什么是枚举
把一个事物所以可能的取值一一列举出来
/*
目的:枚举
*/
#include <stdio.h>
//自定义了一个数据类型,并没有定义变量,该数据类型的名字 enum WeekDay
enum WeekDay{
//MonDay, TuesDay, WednesDay, ThursDay, FriDay, SaturdDay, Sunday
MonDay=10, TuesDay, WednesDay, ThursDay, FriDay, SaturdDay, Sunday
};//分号
int main(void){
//int day;//day定义成int类型范围太大不合适,day的取值只可能有7个(0-6),浪费空间
enum WeekDay day = FriDay; //初始化一个enum WeekDay 类型变量 day
printf("%d\n", day);
return 0;
}
/*
-----------在VC++6.0输出结果:
4
14
*/
怎么使用枚举
/*
目的:枚举2
*/
#include <stdio.h>
enum weekday{
MonDay, TuesDay, WednesDay, ThursDay, FriDay, SaturdDay, Sunday
};
void f(enum weekday i)//本函数的目的只是期望接受0-6之间的数字,将形参定义为枚举
{
switch (i){
case 0:
printf("MonDay !\n");
break;
case 1:
printf("TuesDay !\n");
break;
case 2:
printf("WednesDay !\n");
break;
case 3:
printf("ThrusDay !\n");
break;
case 4:
printf("FriDay !\n");
break;
case 5:
printf("ThursDay !\n");
break;
case 6:
printf("SunDay !\n");
break;
}
}
int main(void){
f(FriDay);//虽然FriDay本质上就是5,但直接写出f(5);就是错的,也不可能写成Friday 大小写敏感
return 0;
}
/*
枚举的优缺点
优点:代码更安全(强制输入),比较直观(有意义)
缺点:书写麻烦,不能出错。
总结:当是有限个元素时,用枚举更安全,高效。
*/