一个变量的值如果是有限的,如月份、星期等,这时可以定义该变量为枚举类型。所谓"枚举",就是将变量的值一 一列举出来。变量的值只限于列举出来的值的范围内。
1.枚举类型的定义和枚举变量的定义
**注意:**定义枚举变量之前,先定义枚举类型
格式如下: enum 枚举标识符{枚举元素表}
2.枚举类型变量的赋值和使用
在使用枚举类型时,需注意以下几点:
1.在C语言中,对枚举元素是按常量处理的,他们不是变量,不能被赋值。
2.枚举元素作为常量,他们是有值的,C语言编译时按定义的顺序依次对他们从0开始赋值。另外枚举元素的值也可以由程序员指定。
3.一个整数值不能直接赋予一个枚举变量。
例:不能直接这样赋值:day1=2,由于他们属于不同的类型,应先进行强制类型转换:day1=(enum day)2。
4.编译器给枚举变量分配的存储单元的大小与整型量相同,枚举量在输出时,只能输出对应的枚举元素的值(序号)。
例1: 不赋值
#include<stdio.h>
void main()
{
enum day
{
Mon,Tue,Wed,Thu,Fir,Sat,Sun
};
printf("Mon=%d\nTue=%d\nWed=%d\nThu=%d\nFir=%d\nSat=%d\nSun=%d\n", Mon,Tue,Wed,Thu,Fir,Sat,Sun);
}
输出如下:
例2: 赋值
#include<stdio.h>
void main()
{
enum day
{
Mon=1,Tue,Wed,Thu,Fir,Sat,Sun
};
printf("Mon=%d\nTue=%d\nWed=%d\nThu=%d\nFir=%d\nSat=%d\nSun=%d\n", Mon,Tue,Wed,Thu,Fir,Sat,Sun);
}
输出如下:
例3: 赋值变式
#include<stdio.h>
void main()
{
enum day
{
Mon,Tue,Wed,Thu=6,Fir,Sat,Sun
};
printf("Mon=%d\nTue=%d\nWed=%d\nThu=%d\nFir=%d\nSat=%d\nSun=%d\n", Mon,Tue,Wed,Thu,Fir,Sat,Sun);
}
输出如下: