C语言枚举类型简介

C语言枚举类型简介枚举是 C 语言中一种基本数据类型 它可以让数据简洁和易读定义格式为 enum 枚举名 元素 1 元素 2 为什么要用枚举 defineMON1 defineTUE2 defineWED3 defineTHU4 defineFRI5 defineSAT6 defineSUN7 例如以上这些代码 看起来很多很复杂 如果用枚举的方式 enumDAY MON 1 TUE WED THU FRI SAT SUN 注意 第一个枚举

  • 枚举是C语言中一种基本数据类型,它可以让数据简洁和易读
  • 定义格式为:
enum 枚举名{ 
   元素1,元素2}; 
  • 为什么要用枚举?
#define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #define SUN 7 

例如以上这些代码,看起来很多很复杂,如果用枚举的方式:

enum DAY{ 
   MON=1,TUE,WED, THU, FRI, SAT, SUN}; 

注意:第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推

enum nums{ 
   a,b,c,d=5,e}; 

没有指定值的枚举元素,其值为前一元素加1

  • 枚举变量的定义
enum DAY{ 
   MON=1,TUE,WED,THU,FRI}; enum DAY day; enum DAY{ 
   MON=1,TUE,WED,THU,FRI}day;//也可以在定义枚举类型时一起定义 enum{ 
   MON=1, TUE, WED, THU, FRI, SAT, SUN}day;//可以省略枚举名称 
  • 实例
#include  
     enum DAY { 
    MON=1, TUE, WED, THU, FRI, SAT, SUN }; int main() { 
    enum DAY day; day = WED; printf("%d",day); return 0; } 
  • 遍历枚举类型
#include  
     enum DAY{ 
    MON=1, TUE, WED, THU, FRI, SAT, SUN } day; int main(){ 
    // 遍历枚举元素 for (day = MON; day <= SUN; day++) { 
    printf("枚举元素:%d \n", day); } } 

如果像以下枚举类型不连续,则无法进行遍历

enum{ 
    day1, day2 = 10, day3 }; 
#include 
     enum DAY{ 
   MON=1, TUE, WED, THU=6, FRI, SAT, SUN}day; int main(){ 
    for(day=MON;day<=SUN;day++){ 
    printf("%d\t",day); } return 0; } //以上的输出结果会变成 1 2 3 4 5 6 7 8 9 
  • 枚举在实例中的运用
#include  
     #include  
     int main(){ 
    enum color { 
    red=1, green, blue }; enum color favorite_color; printf("请输入你喜欢的颜色: (1. red, 2. green, 3. blue): "); scanf("%u", &favorite_color); switch (favorite_color){ 
    case red: printf("你喜欢的颜色是红色"); break; case green: printf("你喜欢的颜色是绿色"); break; case blue: printf("你喜欢的颜色是蓝色"); break; default: printf("你没有选择你喜欢的颜色"); } return 0; } 
  • 将整数转换为枚举
#include 
     #include 
     int main(){ 
    enum day{ 
   saturday,sunday,monday,tuesday,wednesday,thursday,friday}workday; int a=1; enum day weekend; weekend=(enum day)a; printf("weekend:%d",weekend); return 0; } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203181.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午10:24
下一篇 2026年3月19日 下午10:24


相关推荐

  • vim命令大全(转)[通俗易懂]

    vim命令大全(转)[通俗易懂]命令历史以:和/开头的命令都有历史纪录,可以首先键入:或/然后按上下箭头来选择某个历史命令。启动vim在命令行窗口中输入以下命令即可vim直接启动vimvimfilename打开vim并创建名为filename的文件文件命令打开单个文件vimfile同时打开多个文件vimfile1file2file3…在vim窗口中打开一个…

    2022年5月30日
    40
  • 2022年N1叉车司机考试模拟100题及模拟考试

    2022年N1叉车司机考试模拟100题及模拟考试题库来源:安全生产模拟考试一点通公众号小程序2022N1叉车司机试题为N1叉车司机培训试题理论知识考试题库!2022年N1叉车司机考试模拟100题及模拟考试依据N1叉车司机考试教材。N1叉车司机全部考试题库随时根据安全生产模拟考试一点通上练习全部题库。1、【多选题】《中华人民共和国特种设备安全法》第八十四条规定,特种设备使用单位的特种设备存在严重事故隐患,无改造、修理价值,或者达到安全技术规范规定的其他报废条件,未依法履行报废义务,并办理使用登记证书注销手续的。责令停止使用有关特种设备,处()以

    2025年9月24日
    8
  • WebService技术详解 (一)

    WebService技术详解 (一)WebServiceWe 简介 WebService 技术 能使得运行在不同机器上的不同应用无须借助附加的 专门的第三方软件或硬件 就可相互交换数据或集成 依据 WebService 规范实施的应用之间 无论它们所使用的语言 平台或内部协议是什么 都可以相互交换数据 简单的说 WebService 就是一种跨编程语言和跨操作系统平台的远程调用技术 所谓跨编程语言和跨操作平台

    2026年3月26日
    2
  • html导航栏下拉,实现代码[通俗易懂]

    html导航栏下拉,实现代码[通俗易懂]代码如下(示例):<!DOCTYPEhtml><html> <head> <metacharset=”utf-8″> <title></title> <styletype=”text/css”> *{padding:0px;margin:0px;box-sizing:border-box;} ul,ol{list-style-type:none;} a{text-decora

    2022年5月28日
    61
  • linux的vim怎么剪切,Linux.vim.多行复制、删除、剪切

    linux的vim怎么剪切,Linux.vim.多行复制、删除、剪切中间件Study-了解什么是中间件一.中间件含义:中间价是位于各种平台(硬件和操作系统)和各种应用之间的通用服务.帮助应用实现高效的.可靠的消息使应用之间实现便捷的互联互通高效.可靠构建企业应用实现分布式应用的快速搭建和部署注:中间…谈谈我印象中的JVM不足之处研究JVM也有一段时间了,其间也发现了它的很多不足之处,在此一一道来,由于本人对JVM的理解有限,如有错误的地方,还请大家指正:本…

    2022年6月22日
    34
  • python测试系列教程——python+Selenium+chrome自动化测试框架[通俗易懂]

    python测试系列教程——python+Selenium+chrome自动化测试框架[通俗易懂]全栈工程师开发手册(作者:栾鹏)python教程全解需要的环境浏览器(Firefox/Chrome/IE..)PythonSeleniumSeleniumIDE(如果用Firefox)FireBug、FirePath(如果用Firefox)chromedriver、IEDriverServer、phantomjs.exeIDE(Pycharm/Subl…

    2022年4月29日
    75

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号