C语言枚举类型(enum)的各种用法

C语言枚举类型(enum)的各种用法枚举 enum 就是英文 enumerate 的缩写 也就是列举 排列说明的意思 枚举类型是 C 语言中的一种特殊类型 枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围

一、 基本概念

枚举enum就是英文enumerate的缩写,也就是列举、排列说明的意思。枚举类型是C语言中的一种特殊类型,枚举类型可以让我们的程序使用一些固定长度和固定数值的变量值范围。定义枚举类型:enum 枚举类型 {枚举值列表};

二、枚举类型的使用

1、定义枚举类型

//枚举颜色 enum color{ 
   red=1, oreange=2, yellow=3, green=4, ching=5, blue=6, purple=7}; //枚举一个星期的每一天 enum week { 
    Su, Mo, Tu, We, Th, Fr, Sa }; //枚举每一个月 enum month { 
    January, February, March, April, May, June, July, August, September, October, November, December }; 

这样枚举出来的都是一推变量,引用时:

printf("%-3d %-3d %-3d %-3d %-3d %-3d %-3d", red, oreange, yellow, green, ching, blue, purple); 

也就是直接使用,会直接输出对应的值。

2、定义枚举类型的变量

enum week a, b, c; a = Su; b = Mo; c = Tu; enum month d, e, f; d = January; e = February; f = March; 

3、调用枚举类型变量
每周的日期和每月份的输出也是这样:

enum week a, b, c; a = Su; b = Mo; c = Tu; printf("%d %d %d\n", a, b, c); enum month d, e, f; d = January; e = February; f = March; printf("%d %d %d\n", d, e, f); 

4、如果在定义枚举类型时指定元素的值,也可以改变枚举元素的值
例如:
enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat}day;
这时,sun 为 7,mon 为 1,以后元素顺次加 1,所以 sat 就是 6 了。






5、枚举值可以用来作判断
例如:
if (day==month) {…}
if (day>month) {…}
枚举值的比较规则是:按其在说明时的顺序号比较,如果说明时没有人为指定,则第一个枚举元素的值认作 0。








6、一个整数不能直接赋给一个枚举变量,必须强制进行类型转换才能赋值

三、枚举案例

#include  
     void main() { 
    enum weekday { 
   sun,mon,tue,wed,thu,fri,sat} day; int k; printf("请输入0到6的数:"); scanf("%d",&k); day=(enum weekday)k; switch(day) { 
    case sun: printf("sunday\n");break; case mon: printf("monday\n");break; case tue: printf("tuesday\n");break; case wed: printf("wednesday\n");break; case thu: printf("thursday\n");break; case fri: printf("friday\n");break; case sat: printf("satday\n");break; default: printf("input error\n");break; } } 

输入0-6中的一个数字,能够输出对应的星期。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2026年3月18日 下午8:11
下一篇 2026年3月18日 下午8:12


相关推荐

  • Scrapy爬虫框架,入门案例(非常详细)「建议收藏」

    Scrapy爬虫框架,入门案例(非常详细)「建议收藏」Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试.其最初是为了页面抓取(更确切来说,网络抓取)所设计的,后台也应用在获取API所返回的数据(例如AmazonAssociatesWebServices)或者通用的网络爬虫.Scrapy吸引人的地…

    2022年6月26日
    29
  • 讯飞星火大模型全国软件工程总部落地成都高新区

    讯飞星火大模型全国软件工程总部落地成都高新区

    2026年3月14日
    1
  • Mac mini 变身 AI 运维中枢:OpenClaw Mac mini本地化部署

    Mac mini 变身 AI 运维中枢:OpenClaw Mac mini本地化部署

    2026年3月13日
    2
  • Android Handler消息机制原理最全解读(持续补充中)

    Android Handler消息机制原理最全解读(持续补充中)Handler 在 Android 开发的过程中 我们常常会将耗时的一些操作放在子线程 workthread 中去执行 然后将执行的结果告诉 UI 线程 mainthread 熟悉 Android 的朋友都知道 UI 的更新只能通过 Mainthread 来进行 那么这里就涉及到了如何将子线程的数据传递给 mainthread 呢 Android 已经为我们提供了一个消息传递的机制 Hand

    2026年3月19日
    2
  • 美国100部推理小说排行榜第一_好看的悬疑小说排行榜前十名

    美国100部推理小说排行榜第一_好看的悬疑小说排行榜前十名这份书单是美国推理作家协会(TheMysteryWritersofAmerica,简称MWA)票选出来的史上最经典的一百部推理小说排行榜。评选过程极为复杂,首先由推理协会选出本格派、硬汉派、惊悚派、间谍小说等推理小说十个主要流派的十个代表作家,再由这十个作家选出各流派的十部代表作品,然后由协会会员投票排出名次。所以这份书单不仅仅有总的一百强排行榜,还有各个不同流派的十大杰作排名,其中本格和…

    2026年4月17日
    7
  • plsqldev怎么备份和还原数据库

    plsqldev怎么备份和还原数据库
    一、导出/导入(Export/Import)利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。1、简单导出数据(Export)和导入数据(Import):Oracle支持三种方式类型的输出:(1)、表方式(T方式),将指定表的数据导出。(2)、用户方式(U方式),将指定用户的所有对象及数据导出。(3)、全库方式(Full方式),瘵数据库中的所有对象导出。数据导

    2022年5月9日
    49

发表回复

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

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