C语言——枚举类型
📝前言:
在之前的文章中我们已经讲解了自定义类型中的结构体类型和联合体类型,现在我们再充分学习一下C语言中的枚举类型:
1,什么是枚举类型
2,枚举类型的定义和变量的声明
3,对变量进行赋值
🎬个人简介:努力学习ing
📋个人专栏:C语言入门基础
🎀CSDN主页 愚润求学
🌄每日鸡汤:新的一年,祝大家:龙年行大运
文章目录
- 一,什么是枚举类型
- 二,枚举类型的定义和变量的声明
- 1,如何定义和声明
- 2,关于枚举类型中成员的赋值
- 3,命名注意事项
- 三,对变量进行赋值
- 1,使用成员赋值
- 2,强制类型转化,再赋值
一,什么是枚举类型
简单来说,枚举类型就是可以让我们给整数值分配有意义的名字,从而使得代码更易读、易维护
二,枚举类型的定义和变量的声明
1,如何定义和声明
枚举类型的定义和变量的声明方式也与结构体和联合体相似
(一)枚举类型的定义👇🏻
enum 枚举名
{成员项表列
};
(二)枚举变量的声明👇🏻
enum 枚举名 变量名
举例:我们定义一个代表颜色的枚举类型,然后创建一个枚举变量a 👇🏻
enum color
{red=1,yellow=2,blue=3
};
int main()
{enum color a;return 0;
}
这个 {} 里面的变量red yellow blue都有其对应的特定的,不变的整数,所以这些变量也被叫做枚举常量。
当我们引用这些变量的时候,就会输出他们所代表的值,如👇🏻
#include<stdio.h>
enum color
{red=1,yellow=2,blue=3
};
int main()
{printf("%d\n", red);printf("%d\n", yellow);printf("%d\n", blue);return 0;
}
输出结果:
2,关于枚举类型中成员的赋值
如果我们在创建枚举变量时,为未给成员进行初始化赋值,则C语言会自动赋值
遵循:默认从0开始,依次增1
如果只有前几个值,那么后面未被赋值的成员也会被自动赋值,遵循依次增1
例子一(不赋值)👇🏻

例子二(讲将第一个成员赋值为3,后面的不赋值)👇🏻

注意:一旦枚举类型的成员被赋值后,则变成枚举常量,不能再被修改!
3,命名注意事项
同一个程序中不能定义同名的枚举类型;不同的枚举类型中,也不能存在同名的枚举成员。
以下是错误示范:
(一)定义了同名的枚举类型👇🏻
enum color
{red,yellow,blue
};
enum color
{green,black,white
};
(二)存在同名的枚举成员👇🏻
enum color1
{red,yellow,blue
};
enum color2
{red,black,white
};
三,对变量进行赋值
1,使用成员赋值
⭐C语言中的枚举变量通常只能被赋值为枚举类型中定义的成员。
例如,我们给下面的枚举变量a b c赋值👇🏻
【只能使用成员red yellow blue】
#include<stdio.h>
enum color
{red = 1,yellow = 2,blue = 3
};
int main()
{enum color a, b, c;a = red;b = yellow;c = blue;return 0;
}
2,强制类型转化,再赋值
如果我们非要给枚举类型的变量赋整数值,则对枚举型的变量赋整数值时,需要进行类型转换
#include<stdio.h>
enum color
{red = 1,yellow = 2,blue = 3
};
int main()
{enum color c;c = (enum color)10; //强制类型转换printf("%d\n", c);return 0;
}
输出结果:
🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!
相关文章:
C语言——枚举类型
📝前言: 在之前的文章中我们已经讲解了自定义类型中的结构体类型和联合体类型,现在我们再充分学习一下C语言中的枚举类型: 1,什么是枚举类型 2,枚举类型的定义和变量的声明 3,对变量进行赋值 &a…...
linux---内存管理
一 虚拟内存 即使是现代操作系统中,内存依然是计算机中很宝贵的资源,看看你电脑几个T固态硬盘,再看看内存大小就知道了。 为了充分利用和管理系统内存资源,Linux采用虚拟内存管理技术,利用虚拟内存技术让每个进程都有…...
v-model原理
v-model原理 v-model原理表单类组件封装v-model简化代码 v-model原理 1.原理: v-model本质上是一个语法糖。例如应用在输入框上,就是value属性 和 input 事件的合写 <template><div id"app" ><input v-model"msg"…...
波奇学Linux:文件系统
磁盘认识 磁盘被访问的基本单元是扇区-512字节。 磁盘可以看成多个同心圆,每个同心圆叫做磁道,多个扇区组成同心圆。 我们可以把磁盘看做由无数个扇区构成的存储介质。 要把数据存到磁盘,先定位扇区,用哪一个磁头,…...
项目访问量激增该如何应对
✨✨ 欢迎大家来到喔的嘛呀的博客✨✨ 🎈🎈希望这篇博客对大家能有帮助🎈🎈 目录 引言 一. 优化数据库 1.1 索引优化 1.2 查询优化 1.3 数据库设计优化 1.4 事务优化 1.5 硬件优化 1.6 数据库配置优化 二. 增加服务器资源…...
【Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)】
Linux环境基础开发工具的使用yum、vim、gcc、g、gdb、make/Makefile Linux软件包管理器- yumLinux下安装软件的方式认识yum查找软件包安装软件如何实现本地机器和云服务器之间的文件互传卸载软件 Linux编辑器 - vimvim的基本概念vim下各模式的切换vim命令模式各命令汇总vim底行…...
幻兽帕鲁官方更新了,服务器端怎么更新?
幻兽帕鲁官方客户端更新了,那么它的服务器端版本也是需要更新的,不然版本不一致的话,就不能进入游戏了。 具体的更新方法有两种,一是手动输入命令进行更新。第二种是在面板一键更新。 无论你是在阿里云或者腾讯云购买的一键部署…...
axios-retry 响应异常
最近项目中遇到 axios 异步请求异常中断, 错误码为 “ECONNABORTED” 奇怪的是排查前端代码并没有发现有主动调用 abort 取消请求的 由于为何网络请求失败的原因找不到, 但是重试请求就是成功的, 所以计划使用 axios-retry 在网络错误时重新请求 import axiosRetry from axios…...
Vue项目创建和nodejs使用
Vue项目创建和nodejs使用 一、环境准备1.1.安装 node.js【下载历史版本node-v14.21.3-x64】1.2.安装1.3.检查是否安装成功:1.4.在Node下新建两个文件夹 node_global和node_cache并设置权限1.5.配置npm在安装全局模块时的路径和缓存cache的路径1.6.配置系统变量&…...
【机器学习案例3】从科学论文图片中提取标题、作者和摘要【含源码】
在这个项目中,我的目标是从科学论文图片中提取某些部分(标题、作者和摘要)。预期提取部分是科学论文中常见的部分,例如标题、摘要和作者。输入与最终结果。我的输入是将第一页纸转换成图像。最终结果是一个 txt 文件,其中包含标题、作者和摘要部分,如下图1和图2所示。我将…...
【开源】JAVA+Vue.js实现天然气工程运维系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程 12.2.2 流程 22.3 各角色功能2.3.1 系统管理员功能2.3.2 用户服务部功能2.3.3 分公司(施工单位)功能2.3.3.1 技术员角色功能2.3.3.2 材料员角色功能 2.3.4 安…...
什么是智慧隧道,如何建设智慧隧道
一、隧道管理的难点痛点 近年来隧道建设规模不断扩大,作为隧道通车里程最多、规模最大的国家,截至2022年底,我国公路隧道共有24850处、2678.43万延米,其中特长隧道1752处、795.11万延米,长隧道6715处、1172.82万延米。…...
jupyter notebook
输入jupyter notebook 停止运行就用ctrlc 全部注释先全选 ,在按ctrl/...
MongoDB聚合:$listSearchIndexes
$listSearchIndexes返回指定集合现有Atlas Search索引的信息。 **重要:**该命令只能在托管的MongoDB Allas,并且要求群集层级至少为M10。 语法 db.<collection>.aggregate([{$listSearchIndexes:{id: <indexId>,name: <indexName>}…...
Excel练习:日历
Excel练习:日历 题目:制作日历 用rows和columns函数计算日期单元格偏移量 一个公式填充所有日期单元格 ...
【C语言】指针练习篇(上),深入理解指针---指针和数组练习题和sizeof,strlen的对比【图文讲解,详细解答】
欢迎来CILMY23的博客喔,本期系列为【C语言】指针练习篇(上),深入理解指针---指针数组练习题和sizeof,strlen的对比【图文讲解,详细解答】,图文讲解指针和数组练习题,带大家更深刻理解指针的应用…...
2048游戏C++板来啦!
个人主页:PingdiGuo_guo 收录专栏:C干货专栏 大家好呀,我是PingdiGuo_guo,今天我们来学习如何用C编写一个2048小游戏。 文章目录 1.2048的规则 2.步骤实现 2.1: 初始化游戏界面 2.1.1知识点 2.1.2: 创建游戏界面 2.2: 随机…...
2000-2021年县域指标统计数据库
2000-2021年县域统计数据库 1、时间:2000-2021年 2、来源:县域统计年鉴 3、范围:2500县 5、指标: 地区名称、年份、行政区域代码、所属城市、所属省份、行政区域土地面积平方公里、乡及镇个数个、乡个数个、镇个数个、街道办…...
Hive on Spark配置
前提条件 1、安装好Hive,参考:Hive安装部署-CSDN博客 2、下载好Spark安装包,链接:https://pan.baidu.com/s/1plIBKPUAv79WJxBSbdPODw?pwd6666 3、将Spark安装包通过xftp上传到/opt/software 安装部署Spark 1、解压spark-3.3…...
计算机网络——11EMail
EMail 电子邮件(EMail) 3个主要组成部分 用户代理邮件服务器简单邮件传输协议:SMTP 用户代理 又名“邮件阅读器”撰写、编辑和阅读邮件输入和输出邮件保存在服务器上 邮件服务器 邮箱中管理和维护发送给用户的邮件输出报文队列保持待发…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

