枚举类型介绍
如果一个变量只有几种可能的值,比如星期几?这时候我们就可以用枚举类型来定义。列表中的名字,可以自己定义,无需像变量一样去申请。C编译器把他当成常量处理,也称为枚举常量。
定义:
enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
enum {Sun, Mon, Tue, Wed, Thu, Fri, Sat}w1,w2;
枚举类型应用注意事项
- 默认值从0开始:
#include<stdio.h>
enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat};
int main()
{
enum week w;
enum week w1;
enum week w2;
w = Sun;
w1 = Mon;
w2 = Tue;
printf("w = %d\n",w);
printf("w1 = %d\n",w1);
printf("w2 = %d\n",w2);
return 0;
}
运行结果:
不指定枚举元素的值,枚举元素从
0
0
0 开始依次排序。
2. 可以指定列表中枚举数的值:
#include<stdio.h>
enum week {Sun, Mon, Tue = 7, Wed, Thu, Fri, Sat};
int main()
{
enum week w;
enum week w1;
enum week w2;
w = Sun;
w1 = Tue;
w2 = Thu;
printf("w = %d\n",w);
printf("w1 = %d\n",w1);
printf("w2 = %d\n",w2);
return 0;
}
运行结果:
可以看出,指定枚举元素的值以后,被指定的元素后面的元素从它开始依次排序,而被指定的元素前面的元素还是从
0
0
0 开始排序。