不常见的小知识-枚举
【摘要】 枚举枚举 -> 列举,把所有可能的取值->列举enum Sex //性别{ MALE, FEMALE, SECRET //SECRET, };注意:1.成员后面不是跟分号 是跟逗号,最后一个成员后面可以跟逗号,也可以省略不写,2.{}的最后面加分号3.enum Sex这一整个是枚举类型 不要漏了前面的enum这些可能取值都是有值的,默认从0开始,一次递增1,当然在定...
枚举
枚举 -> 列举,把所有可能的取值->列举
enum Sex //性别
{
MALE,
FEMALE,
SECRET
//SECRET,
};
注意:
1.成员后面不是跟分号 是跟逗号,最后一个成员后面可以跟逗号,也可以省略不写,
2.{}的最后面加分号
3.enum Sex这一整个是枚举类型 不要漏了前面的enum
这些可能取值都是有值的,默认从0开始,一次递增1,当然在定义的时候也可以赋初始值
enum Sex //性别
{
MALE,
FEMALE,
SECRET
//SECRET,
};
int main()
{
printf("%d\n", MALE); //0
printf("%d\n", FEMALE);//1
printf("%d\n", SECRET);//2
return 0;
}
enum Sex //性别
{
MALE = 2,
FEMALE,
SECRET = 6
//SECRET,
};
int main()
{
printf("%d\n", MALE); //2
printf("%d\n", FEMALE);//3 每次递增1
printf("%d\n", SECRET);//6
return 0;
}
注意:赋初始值时,后面跟的也是逗号 不是分号!!!同样,最后一个成员赋初始值可以不加逗号
枚举与整形
enum Color c = 4;
这个表达式是有问题的,c为枚举类型,4为整形,二者类型不匹配
最好给枚举变量附枚举的可能取值
enum Color c = GREEN;
枚举类型的变量的值是整形,大小是4byte
枚举的应用
enum Color
{
RED = 2,
GREEN = 4,
BLUE = 8
};
int main()
{
enum Color c = GREEN;
if(c == GREEN)
{
printf("绿色\n");
}
return 0;
}
使用枚举设置简易计算器
enum Option
{
EXIT, //0
ADD, //1
SUB, //2
MUL, //3
DIV //4
};
void menu()
{
printf("******************************\n");
printf("**** 1.add 2.sub ****\n");
printf("**** 3.mul 4.div ****\n");
printf("**** 0.exit ****\n");
printf("******************************\n");
}
int main()
{
int input = 0;
do
{
menu();
printf("请输入你的选择->");
scanf("%d", &input);
switch (input)
{
case ADD:
break;
case SUB:
break;
case MUL:
break;
case DIV:
break;
case EXIT:
break;
default:
printf("选择错误,请重新选择\n");
break;
}
} while (input);
return 0;
}
如果case内写1,2,3,4还要看1,2,3,4代表什么运算,但是如果用枚举就很直观
枚举的优点
我们可以使用#define 定义常量,为什么使用枚举,枚举的优点是什么
-
1.增加代码的可读性和可维护性
-
2.和#define定义的标识符比较,枚举有类型检查,更加严谨
-
3.防止命名污染(封装)
-
4.便于调试
-
5.使用方便,一次可以定义多个常量
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)