一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第11天,点击查看活动详情。
大家好,我是芒果,一名非科班的在校大学生。对C/C++、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流
作者简介:
- CSDN C/C++领域新星创作者blog.csdn.net/chuxinchang…
- 掘金LV3用户 juejin.cn/user/138142…
- 阿里云社区专家博主,星级博主,技术博主 developer.aliyun.com/profile/exp…
- 华为云云享专家 bbs.huaweicloud.com/community/m…
枚举
枚举 -> 列举,把所有可能的取值->列举
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.使用方便,一次可以定义多个常量