IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言最详细枚举enum讲解,附制作简易计算器 -> 正文阅读

[C++知识库]c语言最详细枚举enum讲解,附制作简易计算器


前言

生活中有很多地方会用到枚举,比如一周有7天,可以一一枚举;性别有男、女,可以一一枚举。。。今天来和笔者一起学习一下c语言枚举吧


提示:以下是本篇文章正文内容,下面案例可供参考

一、枚举类型的定义

enum Day//enum Day是一种类型
{
	Mon,//周一到周日这些叫枚举的可能取值,也叫枚举常量
	Tue,
	Wed,
	Thur,
	Fri,
	Sat,
	Sun,
};

上述代码定义的enum Day是一种枚举类型,{}中内容是枚举类型的可能取值,也可叫作枚举常量。
这些枚举常量都是有值的,默认从0开始,依次往后递增1,如果你愿意赋值也是可以的。代码如下:

#include<stdio.h>
enum Color//enum Color是一种类型
{
	red,
	green,
	blue
};
int main()
{
	printf("%d\n", red);
	printf("%d\n", green);
	printf("%d\n", blue);
}

不赋初值打印0, 1,2
在这里插入图片描述

#include<stdio.h>
enum Color//enum Color是一种类型
{
	red=2,
	green,
	blue=6
};
int main()
{
	printf("%d\n", red);
	printf("%d\n", green);
	printf("%d\n", blue);
}

赋初值后打印初值内容,如果你有一个没有赋值,会紧接上一个赋值内容+1
,这里green并没有赋值,但我们知道red是2,按照枚举规则,green会在red的基础上加1变成3,注意,blue是有赋值的,所以blue不需要在green的基础上加1,blue就是6
在这里插入图片描述

注意:因为是枚举{}内的叫作枚举常量,常量是不能改的,比如你在main函数里进行赋值操作,red=9;这个铁铁的会报错,一定要区分枚举初始化和赋值的区别。

二、枚举类型的使用

2.1创建变量

我们前面说过,enum Day、enum Color这种叫作枚举类型,既然它是类型,它就可以创建变量,代码如下:

#include<stdio.h>
enum Color//enum Color是一种类型
{
	red,
	green,
	blue
};
int main()
{
	enum Color a = 1;
	enum Color b = green;
}

我们用枚举类型创建了变量a和b,这里需要注意的是,把1赋给a,在c语言环境下编译器不会报错,但c++下就会出现问题,编译器会认为1是一个整形,你赋给一个枚举类型显然是有问题的。所以我们这里最好把枚举可能取值赋给枚举变量。

2.2一些优点

到这里大家可能会有一些疑惑,我们可以用#define来定义常量,为什么要用枚举呢?我们来看一下它们的区别:

代码如下(示例):

#define red 2
#define green 4
#define blue 8

enum Color
{
	Red,
	Green,
	Blue
};

首先由2.1知,c++环境下,枚举类型会对其他类型的赋值进行警告,而#define定义的常量是没有类型的;
第二就是防止命名污染,举个栗子:#define red 2,这是全局范围命名red为2,那假如你其他地方用到2这个数字,到时候到底是2本身还是red的意思?而枚举定义的red是枚举类型的一个可能取值,不会影响到其他数据;
第三,枚举是可以调试的,调试的过程中你大可输入枚举类型创建的变量,但是#define red 2这种,red如果在代码中会被自动替换为2,你无法用red进行监视
第四,就是可以一次定义多个枚举常量

总结

今天我们学完了枚举的相关定义,枚举类型的使用以及枚举相对于#define定义的区别,下一期笔者还会继续更新C语言联合(共用体相关知识),期待你的关注,预祝读者学习愉快!
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:16:20  更:2021-09-23 11:16:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:18:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码