//enum枚举
/*
枚举是c语言中的一种类型,可以让数据更简洁更易读
枚举的定义格式为: enum 枚举名 {枚举元素1,枚举元素2,····,枚举元素n};
举个栗子,我们要定义一个星期的七天,如果不用枚举,我们需要使用#define来为每个整数定义一个别名
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6
#define SUN 7
这样看起来就比较麻烦,来看看使用举的方式
enmu DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
看起来更简洁。
注意:第一个枚举成员默认值为整型数字0,后面的成员在前一个成员的基础上加1。
我们把第一个成员定义为1,那么第二个成员就为2,一次类推
可以在定义枚举类型时,改变枚举类型的值
enum season {spring, summer=3, autumn, winter};
spring没有指定,那么按照默认值为0,summer=3,后面的没有指定,那么依次在前一个成员的基础加上1.
所以autumn=4,winter=5
*/
//枚举变量的定义
/*
前面只是声明了枚举类型,接下来看看如何定义枚举变量
1.先定义枚举类型,再定义枚举变量
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;
2.定义枚举类型的同时定义枚举变量
enum DAY
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
3.省略枚举类型,直接定义枚举变量
enum
{
MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
*/
//举个栗子
#include <stdio.h>
enum DAY
{
MON=1,TUE,WED,THU,FRI,SAT,SUN
};
int main01()
{
enum DAY day;
day = WED;
printf("day=%d\n",day); //day=3
}
//使用for来遍历枚举的元素
int main02()
{
enum DAY day;
for (day=MON;day<SUN;day++)
{
printf("day=%d\n",day);
/*
day=1
day=2
day=3
day=4
day=5
day=6
*/
}
}
//枚举在switch中的作用
int main03()
{
enum color {red=1,green,blue};
enum color favor_color;
printf("请输入你喜欢的颜色:(1:red,2:green,3:blue):");
scanf("%d",&favor_color);
switch(favor_color)
{
//red就是1,输入red和输入数字没什么区别,也可以混着用
case red:
printf("你喜欢红色\n");
break;
case 2:
printf("你喜欢绿色\n");
break;
case 3:
printf("你喜欢蓝色\n");
break;
}
}
//将整数转换为枚举
int main()
{
enum day
{
saturday,
sunday,
monday,
tuesday,
wednesday,
thursday,
friday
};
int a=1;
enum day weekend;
//枚举类型不可以中途直接赋值
//必须要进行转化
//weekend = a;就是错误的
weekend = (enum day)a; //要这样赋值,enum day看成一个整体
printf("weekend=%d\n", weekend); //weekend=1
return 0;
}
//enum枚举
/*
枚举是c语言中的一种类型,可以让数据更简洁更易读
枚举的定义