admin管理员组

文章数量:1794759

枚举学不懂,小代老师带你深入理解枚举

1 枚举类型

1.1枚举声明

枚举类型的声明 枚举顾名思义就是⼀⼀列举。 把可能的取值⼀⼀列举。 ⽐如我们现实⽣活中: ⼀周的星期⼀到星期⽇是有限的7天,可以⼀⼀列举 性别有:男、⼥、保密,也可以⼀⼀列举 ⽉份有12个⽉,也可以⼀⼀列举 三原⾊,也是可以意义列举 这些数据的表⽰就可以使⽤枚举了。

枚举的关键词:enum

代码语言:javascript代码运行次数:0运行复制
enum Day//星期
{
 Mon,
 Tues,
 Wed,
 Thur,
 Fri,
 Sat,
 Sun
};
enum Sex//性别
{
 MALE,
 FEMALE,
 SECRET
};
enum Color//颜⾊
{
 RED,
 GREEN,
 BLUE
};

以上定义的 enum Day , enum Sex , enum Color 都是枚举类型。 {}中的内容是枚举类型的可能取值,也叫 枚举常量 。 这些可能取值都是有值的,默认从0开始,依次递增1,当然在声明枚举类型的时候也可以赋初值。

代码语言:javascript代码运行次数:0运行复制
enum Color//颜⾊
{
//他们是枚举常量,被称为枚举常量,在第一次赋值时候可以给初始值,之后常量不能被改变
 RED=2,
 GREEN=4,
 BLUE=8
};
代码语言:javascript代码运行次数:0运行复制
int main()
{
	enum un
	{
		add,
		sub,
		mul,
		div,
	};
	enum un n1 = mul;
	printf("%d",div);
	printf("%d",n1);
	return 0;
}

我们可以直接用枚举里面的值也可以把枚举里面的值赋予给变量。

1.2 枚举类型的优点

为什么使⽤枚举? 我们可以使⽤ #define 定义常量,为什么⾮要使⽤枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符⽐较枚举有类型检查,更加严谨。 3. 便于调试,预处理阶段会删除 #define 定义的符号 4. 使⽤⽅便,⼀次可以定义多个常量 5. 枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤

第5条如上图:枚举如果是局部变量只能在局部使用。

2.3 枚举类型的使⽤

1 enum Color//颜⾊ 2 { 3 RED=1, 4 GREEN=2, 5 BLUE=4 6 }; 7 8 enum Color clr = GREEN;//使⽤枚举常量给枚举变量赋值 那是否可以拿整数给枚举变量赋值呢?在C语⾔中是可以的,但是在C++是不⾏的,C++的类型检查⽐ 较严格。

代码语言:javascript代码运行次数:0运行复制
#include<stdio.h>
int add1(int x, int y)
{
	return x + y;
}
int sub1(int x, int y)
{
	return x - y;
}int mul1(int x, int y)
{
	return x * y;
}int div1(int x, int y)
{
	return x / y;
}
void meun()
{
	printf("********************\n");
	printf("*** 1 add*** 2 sub****\n");
	printf("*** 3 mul***  4div****\n");
	printf("***    0 exit    ****\n");
	printf("********************\n");
}
int main()
{
	enum un
	{
		exit,
		add,
		sub,
		mul,
		div,
	};
	int x = 0;
	int y = 0;
	int input = 0;
	int ret = 0;
	do
	{
		meun();
		printf("请选择:");
		scanf("%d", &input);
		switch (input)
		{
		case add:
			printf("请输入两个数:");
			scanf("%d %d",& x,& y);
			ret=add1(x, y);
			printf("%d", ret);
			break;
		case sub:
			printf("请输入两个数:");
			scanf("%d %d", &x,& y);
			 ret = sub1(x, y);
			printf("%d", ret);
			break;
		case mul:
			printf("请输入两个数:");
			scanf("%d %d", &x,& y);
			ret = mul1(x, y);
			printf("%d", ret);
			break;
		case div:
			printf("请输入两个数:");
			scanf("%d %d",& x,& y);
			ret = div1(x, y);
			printf("%d", ret);
			break;
		case 0:printf("退出计算器"); break;
		default: printf("输入错误,请重新输入");break;
		}
	} while (input);
}

这里可以提高程序的可读性。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-10-17,如有侵权请联系 cloudcommunity@tencent 删除int变量函数数据调试

本文标签: 枚举学不懂,小代老师带你深入理解枚举