C语言枚举类型详解

news2024/12/26 21:14:11

下午好诶,今天小眼神给大家带来一篇C语言枚举类型详解的文章~

目录

一、枚举类型的声明

二、枚举类型的优点

三、枚举类型的使用 


一、枚举类型的声明

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

比如:

一周从周一到周日共有七天,可以一一列举。

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

月份有12个月等等。

 这些数据的表示就可以使用枚举了。

enum Day//星期
{
	Mon,
	Tues,
	Wed,
	Thur,
	Fri,
	Sat,
	Sun
};
enum Sex//性别
{
	MALE,
	FEMALE,
	SECRET
};
enum Color//颜色
{
	RED,
	GREEN,
	BLUE
};

这里代码定义的enum Day,enum Sex,enum Color都是枚举类型

 {  } 中的内容是枚举类型的可能取值,也叫枚举常量,但注意!在枚举类型中,枚举常量之间的间隔不是我们熟悉的 ' ;' 而是 ' , ',并且最后一个常量后面不需要任何符号。

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

enum Color//颜色
{
	RED,
	GREEN=2,
	BLUE
};

注意:当在声明的时候就给常量赋值,那么这个被赋值的常量的下一个常量就会从这个被赋值常量的值开始+1

上述代码依次为0,2,3

二、枚举类型的优点

那么有小伙伴会问了,为什么要使用枚举呢?

我们完全可以用#define定义常量,为什么非要用枚举类型呢?

那我们说说枚举的优点:

1. 增加代码的可读性可维护性

2. 和 #define 定义的标识符比较枚举有类型检查更加严谨

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

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

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

三、枚举类型的使用 

enum Color//颜色
{
	RED=1,
	GREEN=2,
	BLUE=4
};

enum Color clr = GREEN;//使用枚举常量给枚举变量赋值

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

感谢阅读本篇文章

 希望能对您解题有所帮助,记得点赞关注收藏 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1614189.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ARM汇编伪指令AREA

ARM伪指令AREA用于定义一个代码段或数据段。其基本的语法格式如下: AREA 段名 属性1,属性2, ... 其中: 段名:是你为代码段或数据段指定的名称。如果段名以数字开头,则该段名需要用“│”括起来,如│1_test│。段名可…

文档在线预览,可以私有化局域网在服务器部署组件来实现在线预览

去官网查看 几行代码即可运行 https://kkfileview.keking.cn/zh-cn/index.html

引用静态方法

import java.util.Arrays; import java.util.Comparator;public class demo1 {//引用public static void main(String[] args) {Integer []arr{1,2,4,3,8,6};//匿名内部类Arrays.sort(arr, new Comparator<Integer>() {Overridepublic int compare(Integer o1, Integer o…

深度神经网络(DNN)

通过5个条件判定一件事情是否会发生&#xff0c;5个条件对这件事情是否发生的影响力不同&#xff0c;计算每个条件对这件事情发生的影响力多大&#xff0c;写一个深度神经网络&#xff08;DNN&#xff09;模型程序,最后打印5个条件分别的影响力。 示例 在深度神经网络&#xf…

葡萄书--深度学习基础

卷积神经网络 卷积神经网络具有的特性&#xff1a; 平移不变性&#xff08;translation invariance&#xff09;&#xff1a;不管检测对象出现在图像中的哪个位置&#xff0c;神经网络的前面几层应该对相同的图像区域具有相似的反应&#xff0c;即为“平移不变性”。图像的平移…

OJ:寻找独一无二的数

目录 &#x1f3dd;1.问题描述&#xff1a; &#x1f3dd;2.分析问题&#xff1a; &#x1f3dd;3.最终代码&#xff1a; &#x1f3dd;1.问题描述&#xff1a; &#x1f3dd;2.分析问题&#xff1a; 先看看下面的代码的结果是多少&#xff1f; #include<stdio.h> in…

深度学习之视觉特征提取器——VGG系列

VGG 提出论文&#xff1a;1409.1556.pdf (arxiv.org) 引入 距离VGG网络的提出已经约十年&#xff0c;很难想象在深度学习高速发展的今天&#xff0c;一个模型能够历经十年而不衰。虽然如今已经有VGG的大量替代品&#xff0c;但是笔者研究的一些领域仍然有大量工作选择使用VG…

多商户入驻型AI智能名片预约服务系统:掀起服务行业数字化革命狂潮!

多商户入驻型AI智能名片预约服务系统以其高效、便捷、智能的特点&#xff0c;成为服务行业数字化转型的重要推手。该系统通过整合线上线下资源&#xff0c;利用人工智能和大数据技术&#xff0c;为商户和消费者搭建了一个无缝对接的预约服务平台。商户可以轻松入驻系统&#xf…

【Java框架】SpringMVC(一)——基本的环境搭建及基本结构体系

目录 MVC模式视图(View)控制器(Controller)模型(Model)JSP Model1JSP Model2MVC的优点MVC的缺点 Spring MVC架构介绍特点 SpringMVC环境搭建(在前面Spring整合Mybatis的基础上)1.创建控制器Controller2.创建springmvc配置文件&#xff0c;并添加Controller的Bean3.web.xml中配置…

通用大模型研究重点之五:model services

Trtion https://github.com/openai/triton https://www.nvidia.cn/gpu-cloud/ngc-nvidia-triton/ https://github.com/openai/openai-cookbook https://github.com/openai/openai-python Triton 是一个由 NVIDIA 开发的开源推理服务平台&#xff0c;旨在简化和优化生产环境中的…

windows11 iis10中.net4.5不能用解决方法

问题iis设置4.0后运行程序提示web.config配置错误 解决方法&#xff1a; 管理员身份运行命令提示符分别运行如下命令&#xff1a; dism /online /enable-feature /featurename:IIS-ISAPIFilter dism /online /enable-feature /featurename:IIS-ISAPIExtensions dism /onli…

模拟量和开关量傻傻分不清?戳这文

在电子工程中&#xff0c;模拟量和开关量是最基本的信号类型&#xff0c;但它们在表示和处理方式上有着显著的不同。对于初入行的电子工程师来说&#xff0c;很容易混淆这两者。本文将用简洁明了的方式解释这两种信号类型&#xff0c;让你轻松掌握它们的区别。 1、模拟量 模拟…

js作业微博发言

微博 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible" content&q…

三款热门婴儿洗衣机深度测评,希亦、觉飞、RUUFFY谁更好用?

近几年科技高速发展&#xff0c;我们的生活也因此变得更加便捷、健康高效。尤其是在家庭生活中&#xff0c;各种新兴家电的出现让我们的生活变得更加健康卫生。婴儿洗衣机也为现代家庭提供了极大的便捷。由于婴儿刚出生免疫力比较弱&#xff0c;所以建议婴儿的衣物尽量和大人的…

在C#中,PDFsharp库使用(三):PDF提取

PDF提取 一、PDF提取功能&#xff0c;看图 二、PDF提取界面 三、PDF提取代码 //pdf提取---选择文件Button private void button9_Click(object sender, EventArgs e) {string oneFilePath GetOneFilepath();if (!string.IsNullOrEmpty(oneFilePath)){textBox3.Text oneFilePa…

Java多线程交替打印

多线程交互 在Java中&#xff0c;可以使用synchronized关键字或者java.util.concurrent包中的工具来实现多线程交替打印。以下是一个使用synchronized关键字的示例&#xff1a; public class AlternatePrinting {private static final Object lock new Object();private sta…

设计模式之创建型模式---工厂模式

文章目录 工厂模式概述简单工厂简单工厂的代码实现简单工厂的使用简单工厂应用场景 工厂方法工厂方法模式的代码实现工厂方法的使用工厂方法应用场景 抽象工厂抽象工厂模式代码实现抽象工厂的使用方法抽象工厂模式的应用场景 总结 工厂模式概述 工厂模式从名字就能看出&#x…

【Java笔记】如何创建自己的注解+注解怎么用于反射+SpringBoot常见注解

文章目录 0. 为什么SpringBoot要整这么多注解&#xff1f;1. 一些基础知识1.1 什么是注解1.2 Java内置注解1.2.1 作用在代码上的注解1.2.2 作用在注解的注解&#xff08;元注解&#xff09;1.2.3 Java 7之后的新注解 1.3 注解的作用1.4 如何实现一个自己的注解&#xff1f;1.4.…

向量的求导

参考&#xff1a; 向量的求导 向量内积求导

如何提交已暂存的更改到本地仓库?

文章目录 如何提交已暂存的更改到本地Git仓库&#xff1f;步骤1&#xff1a;确认并暂存更改步骤2&#xff1a;提交暂存的更改到本地仓库 如何提交已暂存的更改到本地Git仓库&#xff1f; 在Git版本控制系统中&#xff0c;当你对项目文件进行修改后&#xff0c;首先需要将这些更…