【C语言】自定义类型------枚举类型

1、枚举类型

枚举类型的关键字是:enum

枚举顾名思义就是一 一列举。

把可能的取值一 一列举。

比如,比如我们现实生活中,一周的星期一到星期日是有限的的7天,可以一 一列举。三原色(红、蓝、绿)也是可以一一列举。

性别:男、女、保密,也可以一一列举。

例如:

enum Color//颜色

{

RED,

GREEN,

BLUE

};
enum Sex//性别

{

MALE,

FEMALE,

SECRET

};

以上定义的:enum Color, enum Sex都是枚举类型。{}中的内容是枚举类型的可能取值,也叫枚举常量。

这些可能取值都是有值的,默认从0开始,一次递增1,当然在声明枚举类型的时候也可以赋初值。

例如:

enum Color//颜色

{

RED=2,

GREEN=4,

BLUE=6

};

代码示例:

源代码:

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

enum Color

{

RED,

GREEN,

BLUE

};

int main()

{

printf("%d\n", RED);

printf("%d\n", GREEN);

printf("%d\n", BLUE);

return 0;

}

注意:

2、枚举类型的优点

为什么使用枚举?

我们可以使用#define定义常量,为什么非要使用枚举?

枚举的优点:

(1)增加代码的可读性和可维护性

(2)和#define定义的标识符相比,枚举有类型检查,更加严谨

(3)便于调试,预处理阶段会删除#define定义的符号

(4)使用方便,一次可以定义多个常量

(5)枚举常量是遵循作用域规则的。枚举声明在函数内,只能在函数内使用。

增加代码的可读性:

例如:

代码:

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

enum option

{

EXIT,//退出程序

ADD,//加法

SUB,//减法

MUL,//乘法

DIV//除法

};

int main()

{

int x = 0;

int y = 0;

scanf("%d %d", &x, &y);

printf("**** 0 退出程序 1 加法\n");

printf("**** 2 减法 3 乘法\n");

printf("**** 4 除法\n");

int n = 0;

printf("请输入选项:");

scanf("%d", &n);

switch (n)

{

case EXIT:

break;

case ADD:

printf("%d\n", x + y);

break;

case SUB:

printf("%d\n", x - y);

break;

case MUL:

printf("%d\n", x * y);

break;

case DIV:

if (y ==0 )

{

printf("y不能为0");

break;

}

printf("%d\n", x / y);

break;

default:

printf("输入错误");

}

return 0;

}

3、枚举类型的使用

在C语言中,也可以拿整数给枚举变量赋值。但是在C++中是不行的,C++的类型检查比较严格。

例如:

相关推荐
喵手1 小时前
Java 与 Oracle 数据泵实操:数据导入导出的全方位指南
java·开发语言·oracle
硬汉嵌入式2 小时前
H7-TOOL的LUA小程序教程第16期:脉冲测量,4路PWM,多路GPIO和波形打印(2024-10-25, 更新完毕)
开发语言·junit·小程序·lua
加载中loading...2 小时前
Linux线程安全(二)条件变量实现线程同步
linux·运维·服务器·c语言·1024程序员节
Wx120不知道取啥名2 小时前
C语言之长整型有符号数与短整型有符号数转换
c语言·开发语言·单片机·mcu·算法·1024程序员节
Python私教3 小时前
Flutter颜色和主题
开发语言·javascript·flutter
代码吐槽菌3 小时前
基于SSM的汽车客运站管理系统【附源码】
java·开发语言·数据库·spring boot·后端·汽车
Ws_3 小时前
蓝桥杯 python day01 第一题
开发语言·python·蓝桥杯
zdkdchao3 小时前
jdk,openjdk,oraclejdk
java·开发语言
神雕大侠mu4 小时前
函数式接口与回调函数实践
开发语言·python
Y.O.U..4 小时前
STL学习-容器适配器
开发语言·c++·学习·stl·1024程序员节