前面我们学过了C语言中的结构体,今天我们来学习枚举。枚举是C语言的基本数据类型,并不是构造类型。当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。C语言编译器会将枚举元素作为整型常量处理,称为枚举常量。枚举元素取值取决于定义时各枚举元素的先后顺序。默认情况下,第一个元素取值为0,第二个元素取值为1,依序加1。下面我们来看一个例子,代码如下:
#include <stdio.h>
void testMonth(){
//定义枚举类型
enum month {January=1,February,March,April,May,June,July,August,September,October,November,December};
//定义枚举变量
enum month m;
//遍历枚举元素
for( m=January; m <= December; m++){
printf("一年12个月份的英文名的枚举元素:%d\n",m);
};
}
int main() {
testMonth();
return 0;
}
运行结果如下:
一年12个月份的英文名的枚举元素:1
一年12个月份的英文名的枚举元素:2
一年12个月份的英文名的枚举元素:3
一年12个月份的英文名的枚举元素:4
一年12个月份的英文名的枚举元素:5
一年12个月份的英文名的枚举元素:6
一年12个月份的英文名的枚举元素:7
一年12个月份的英文名的枚举元素:8
一年12个月份的英文名的枚举元素:9
一年12个月份的英文名的枚举元素:10
一年12个月份的英文名的枚举元素:11
一年12个月份的英文名的枚举元素:12
上面例子中,为什么第一个元素的值不为0呢?原因在于我在第5行定义枚举类型的时候将1赋值给了第一个元素January,将原本默认是0的值更改为1,后面的元素根据前面的元素加1,则得到运行结果。如果我们赋值:m=3;等价于m=March; 枚举的一般形式:enum 枚举名 {枚举元素1,枚举元素2,枚举元素3,......};
好了,今天就学习这么多,好好将例子理解并掌握。