一、什么是枚举类型
所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值范围内。枚举类型是一种用户自定义的数据类型,其主要用途是用名称来代替某些有特定含义的数据,使之更加直观,增加程序的可读性。
enum 枚举名{枚举值列表};
枚举类型定义后,系统会为每个枚举元素定义一个枚举值,默 认从0开始,后续元素的值依次递增。
也可以根据需要把某个枚举元素的值赋值为指定的整常数,此 时该枚举元素后面的元素的值将接着此整常数递增。
定义了一个枚举类型后,就可以用此类型来定义变量。和结构体、共用体一样,定义的方式也有2种,即间接法和直接法。
二、枚举类型注意事项
引用枚举类型数据时,需要注意以下几点:
①枚举类型和结构体,共用体一样是用户自定义的构造类型。
②枚举值是用户给枚举类型变量所限定的可能的取值。
③枚举值是用户定义的标识符,这些标识符并不自动的代表什么 含义。
④除非作为枚举值,一般不能直接将一个整数赋给枚举变量,但 可以通过强制类型转换来赋值。
接下来我们做一道题来理解枚举类型;
#include<stdio.h>
int main()
{
enum operation{ plus, minus, times};
int x,y,i;
printf("Please input two numbers:");
scanf("%d%d",&x,&y);
for(i=plus; i<=times;i++)
{
switch(i)
{
case plus: printf("%d+%d=%d\n",x,y,x+y); break;
case minus: printf("%d-%d=%d\n",x,y,x-y); break;
case times: printf(“%d*%d=%d\n”,x,y,x*y); break;
}
}
return 0;
}
运行结果如下: Please input two numbers: 3 5↙ 3+5=8 3-5=-2 3*5=15
三、typedef定义类型
typedef语句的一般形式如下:
typedef 原类型名 新类型名;
其中,原类型名必须是C语言提供的标准数据类型或用户自定义的数 据类型。
例如, typedef float REAL; 定义了float的别名为REAL,
此后可以用REAL来代替float对变量 进行定义。
REAL x, y; 等价于 float x,y;