【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++的类型检查比较严格。

例如:

相关推荐
似是燕归来5 小时前
嵌入式工程师进阶指南:适配器编程设计模式一
c语言·stm32·适配器模式·嵌入式开发
西门吹-禅6 小时前
java springboot N+1问题
java·开发语言·spring boot
skywalk81636 小时前
设计并实现段言的 C FFI 绑定机制 @Trae
c语言·开发语言·python·编程
IT笔记7 小时前
【Rust】Rust Match 模式匹配详解
java·开发语言·rust
2zcode8 小时前
免费开源项目文档:基于MATLAB卷积神经网络的口罩佩戴检测系统
开发语言·matlab·cnn
逝水无殇8 小时前
C# 运算符重载详解
开发语言·后端·c#
TPBoreas8 小时前
配置信息防泄露方案:.env 环境隔离详解(dotenv-java)
java·开发语言
额鹅恶饿呃8 小时前
C语言中的数据结构和变量
c语言·数据结构·算法
敲代码的嘎仔9 小时前
实习日志day6--实习日志day6--title命名规范化&businessType纠正&补充缺失的@Log注解&报警与通信模块补充&产出阶段总结文档
java·开发语言·人工智能·git·python·实习·大二
江华森9 小时前
Python 实现高德地图找房(一):环境搭建与数据爬虫
开发语言·爬虫·python