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

例如:

相关推荐
A懿轩A23 分钟前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
半盏茶香28 分钟前
在21世纪的我用C语言探寻世界本质 ——编译和链接(编译环境和运行环境)
c语言·开发语言·c++·算法
Evand J1 小时前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
LucianaiB1 小时前
探索CSDN博客数据:使用Python爬虫技术
开发语言·爬虫·python
Ronin3051 小时前
11.vector的介绍及模拟实现
开发语言·c++
字节高级特工1 小时前
【C++】深入剖析默认成员函数3:拷贝构造函数
c语言·c++
计算机学长大白2 小时前
C中设计不允许继承的类的实现方法是什么?
c语言·开发语言
PieroPc3 小时前
Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
开发语言·python·excel
2401_857439696 小时前
SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
开发语言·php
SoraLuna6 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos