C语言学习--枚举

发布时间:2026/8/24 4:43:39

C语言学习--枚举
枚举什么是枚举枚举Enumeration是C语言中的一种用户自定义数据类型用于定义一组相关的常量。枚举使我们可以为这些常量分配有意义的名字从而提高代码的可读性和可维护性。如果我们定义一个变量用来表示一周中的一天该变量的值只能从七个有效值中选择枚举可以帮助我们限制变量的有效值。如何定义枚举语法格式枚举使用enum关键字来定义枚举名称和枚举元素名称都是标识符定义一个枚举就是定义了一种枚举数据类型语法如下enum 类型名{枚举常量,枚举常量,枚举常量,枚举常量...}enum 类型名{枚举常量 整数,枚举常量,枚举常量,枚举常量...}枚举常量枚举元素也称为枚举成员或枚举常量具有如下特点1枚举元素的值必须在同一枚举中是唯一的2枚举元素的值必须是整数类型通常是int3如果没有为枚举元素指定值编译器会自动为它们分配值从0开始依次递增。4定义枚举的时候也可以为枚举元素自定义值需保证唯一性和整型类型。#include stdio.h enum Bool { FALSE, // 0 TRUE, // 1 // 未显式赋值时第一个常量默认为0后续依次1 }; int main() { // 定义 Bool 类型的变量 enum Bool b1 TRUE; enum Bool b2 FALSE; printf(b1%d \n, b1); printf(b2%d \n, b2); // 只能从预定义常量中选择TRUE/FALSE不能直接赋其他整数值 printf(%d %d \n, TRUE, FALSE); printf(%zu %zu \n, sizeof TRUE, sizeof FALSE); printf(%zu %zu \n, sizeof b1, sizeof b2); printf(\n); return 0; }定义枚举变量的三种方法第一种 先定义类型再定义变量第二种 同时定义类型和变量第三种 同时定义类型和变量省略类型名#include stdio.h int main() { /*自定义枚举类型可以有作用域限制 定义在函数内部则只在该函数内可用 通常建议定义为全局类型 */ // 第一种 先定义类型再定义变量 enum Gender { Female, Male, Abinary, NonBinary }; enum Gender g1 Female; // 第二种 同时定义类型和变量 enum Weekday { MONDAY 1, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } w1 THURSDAY, w2 FRIDAY, w3 SUNDAY; enum Weekday w4 MONDAY; // 第三种 同时定义类型和变量省略类型名 enum { MONDAY 1, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } wd THURSDAY; return 0; }指向枚举变量的指针enum Gender *ptr g1;

相关新闻

Java量化系列(四十六): 炸板股全量抓取+解析,吃透炸板套利与风险规避,量化必学

Java量化系列(四十六): 炸板股全量抓取+解析,吃透炸板套利与风险规避,量化必学

2026/8/24 4:43:39

重要提示:建议先阅读第41-45篇内容,掌握五大核心股票池(ZT/DT/YES_ZT/QS/CX)的抓取逻辑、StockPoolInfo实体类用法及反爬技巧后, 再阅读本文——炸板股(ZB类型)是量化策略的「风险信号灯套利黄…

FreeRTOS任务创建四要素:栈、优先级、函数、名称深度解析

FreeRTOS任务创建四要素:栈、优先级、函数、名称深度解析

2026/8/24 4:43:39

1. 这不是“Hello World”,而是嵌入式开发的真正起点:FreeRTOS任务创建到底在解决什么问题?你打开Keil、IAR或者STM32CubeIDE,新建一个工程,写完main()函数里那几行初始化代码,烧录进芯片——LED亮了&#…

Python打造终端音乐播放器:TUI界面与音频处理实战

Python打造终端音乐播放器:TUI界面与音频处理实战

2026/8/24 4:43:39

在终端里听音乐听起来像是一个复古又极客的选择,但当你需要专注编码、不想被图形界面打扰,或者服务器环境需要一些背景音时,一个运行在命令行下的音乐播放器就成了一个高效且纯粹的工具。它不占用太多系统资源,可以通过简单的键盘…

从JMeter到k6:构建CI/CD友好的性能测试与可视化报告工作流

从JMeter到k6:构建CI/CD友好的性能测试与可视化报告工作流

2026/8/24 5:33:41

1. 项目概述:为什么选择k6进行性能测试?如果你是一名后端开发、DevOps工程师或者测试人员,性能测试和压力测试大概率是你绕不开的课题。过去,我们可能习惯性地打开JMeter,配置线程组、添加监听器,然后运行一…

Docker容器资源限制实战:从CPU、内存到磁盘IO的精细化管理

Docker容器资源限制实战:从CPU、内存到磁盘IO的精细化管理

2026/8/24 5:33:41

1. 项目概述:为什么容器资源管理是运维的必修课在容器化部署的实践中,很多开发者,尤其是刚接触Docker的朋友,常常会陷入一个误区:认为容器只是轻量级的进程,可以随意创建,无需关心其资源消耗。直…

从零搭建AI Agent工具链:从概念到工程化实践

从零搭建AI Agent工具链:从概念到工程化实践

2026/8/24 5:33:41

最近在技术社区里,一个词的热度居高不下:Agent。从各种“智能体平台”的涌现,到“Agent框架”的激烈讨论,再到“AI工程化”的呼声,似乎一夜之间,不搞点Agent开发,就跟不上时代了。但当你真正想动…

基于Python构建自动化信息监控系统:从QClaw看爬虫与任务调度实践

基于Python构建自动化信息监控系统:从QClaw看爬虫与任务调度实践

2026/8/24 5:33:41

1. 项目概述:从“追番”到“智能管家”的进化 作为一个追了十几年动漫的老二次元,我太懂那种每周掐着点等更新的感觉了。更头疼的是,追的番剧一多,分布在不同的平台,更新提醒全靠脑子记或者手动刷,一不小心…

Java金融科技面试:AOP、并发与Linux运维实战解析

Java金融科技面试:AOP、并发与Linux运维实战解析

2026/8/24 5:33:41

1. 项目背景与核心价值作为Java技术方向的求职者,面对金融科技领域头部企业的技术面试,系统化的高频考点梳理至关重要。中金所技术(苏州)作为金融衍生品交易系统的核心建设者,其技术栈考察具有鲜明的行业特性&#xff…

AI求职代理ClawdBot:技术架构与实战效果解析

AI求职代理ClawdBot:技术架构与实战效果解析

2026/8/24 5:23:41

1. 项目概述:当AI代理成为求职管家三周前我第一次把简历交给ClawdBot时,手指在回车键上悬停了整整37秒。这个号称能通过大模型自动完成职位匹配、简历投递甚至面试预约的AI代理,正在把我的求职流程从"海投-等待-焦虑"的循环中解放出…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/23 0:02:09

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/23 0:02:09

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/23 0:02:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

2026/8/24 0:03:28

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan OpenModScan 是一款开源免…

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

2026/8/24 0:03:28

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化 【免费下载链接】WechatHook Enjoy hooking wechat by Xposed....Accessibility...and so on... 项目地址: https://gitcode.com/gh_mirrors/we/WechatHook WechatHook 是一个基于 Xpos…

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

2026/8/24 0:03:28

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南 【免费下载链接】ThinkpadX390-Opencore-EFI macOS Catalina & Big Sur & Monterey on ThinkPad X390 (Hackintosh) 项目地址: https://gitcode.com/gh_mirrors/th/ThinkpadX390-Opencore-EFI …

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…