枚举enum就是英文enumerate的缩写,也就是列举、排列说明的意思。枚举类型是C语言中的一种特殊类型,枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围。
1、定义枚举类型
定义枚举类型:enum 枚举类型 {枚举值列表};
//枚举颜色
enum color{red=1, oreange=2, yellow=3, green=4, ching=5, blue=6, purple=7};
//枚举一个星期的每一天
enum week { Su, Mo, Tu, We, Th, Fr, Sa };
这样枚举出来的都是一推变量,引用时:
printf("%-3d %-3d %-3d %-3d %-3d %-3d %-3d", red, oreange, yellow, green, ching, blue, purple);
也就是直接使用,会直接输出对应的值。
2、定义枚举类型的变量
enum week a, b, c;
a = Su;
b = Mo;
c = Tu;
3、如果在定义枚举类型时指定元素的值,也可以改变枚举元素的值
例如:
enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat}day;
这时,sun 为 7,mon 为 1,以后元素顺次加 1,所以 sat 就是 6 了。
4、一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值
5、程序举例
#include <stdio.h>
void main()
{
enum weekday {sun,mon,tue,wed,thu,fri,sat} day;
int k;
printf("请输入0到6的数:");
scanf("%d",&k);
day=(enum weekday)k;
switch(day)
{
case sun: printf("sunday\n");break;
case mon: printf("monday\n");break;
case tue: printf("tuesday\n");break;
case wed: printf("wednesday\n");break;
case thu: printf("thursday\n");break;
case fri: printf("friday\n");break;
case sat: printf("satday\n");break;
default: printf("input error\n");break;
}
}
输入0-6中的一个数字,能够输出对应的星期。