12.(enum)枚举

//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;
}
	

  

猜你喜欢

转载自www.cnblogs.com/traditional/p/9478427.html
今日推荐