11.10 枚举类型
在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。

应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
11.10.1 枚举类型的定义和枚举变量的说明
1. 枚举的定义
枚举类型定义的一般形式为:
enum 枚举名{ 枚举值表 };
在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。
例如:
该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。
2. 枚举变量的说明
如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。
设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:
enum weekday{ sun,mou,tue,wed,thu,fri,sat };
enum weekday a,b,c;
或者为: enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c;
或者为: enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;
11.10.2 枚举类型变量的赋值和使用
枚举类型在使用中有以下规定:
1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。 例如对枚举weekday的元素再作以下赋值: sun=5; mon=2; sun=mon; 都是错误的。
2. 枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。
【例11.10】
main(){
enum weekday
{ sun,mon,tue,wed,thu,fri,sat } a,b,c;
a=sun;
b=mon;
c=tue;
printf("%d,%d,%d",a,b,c);
}
说明: 只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:
a=sum;
b=mon;
是正确的。而:
a=0;
b=1;
是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。 如:
a=(enum weekday)2;
其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:
a=tue; 还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。
【例11.11】
main(){
enum body
{ a,b,c,d } month[31],j;
int i;
j=a;
for(i=1;i<=30;i++){
month[i]=j;
j++;
if (j>d) j=a;
}
for(i=1;i<=30;i++){
switch(month[i])
{
case a:printf(" %2d %c\t",i,'a'); break;
case b:printf(" %2d %c\t",i,'b'); break;
case c:printf(" %2d %c\t",i,'c'); break;
case d:printf(" %2d %c\t",i,'d'); break;
default:break;
}
}
printf("\n");
}
相关推荐:
SEO应该如何提升网站流量与排名?揭秘成功的SEO策略,肺炎疫苗推广营销
SEO优化的利器:提升网站排名的秘密武器,联想ai7g-3笔记本
什么是seo伪原创,seo就业前景伪原创怎么写 ,头像ai画怎么弄
SEO获取流量的必杀技:如何通过优化轻松提升网站排名,德州全网营销推广价格
seo站长什么意思,站长工具 - seo综合查询 ,ai少女身材
摘要AI生成:高效工作的新时代利器
用AI写文,开启创作新时代
优化入口:提升网站流量与转化率的秘密武器,琼海关键词排名品牌
SEO获客的秘诀:如何通过搜索引擎优化提升客户获取能力,厦门seo搜索优化排名
seo竞价做的什么工作,seo 竞价 ,office智能ai
SEO优化需要花钱吗?从零起步,如何让SEO成为企业的“隐形财富”,字体如何往ai里面倒
SEO才能:提升网站排名,突破网络营销的核心竞争力,南宁本地seo营销公司
AI缩写文本:助力智能生活的革新力量,ai智能写作生成神器下载
SEO优化:让你的网站在竞争中脱颖而出,临沧seo代理
怎么分辨文章是不是AI写的?五大技巧揭开真相
ChatGPT198元永久会员,开启智慧之门,体验AI的极致服务!,老孙教ai
ChatGPT对于大数据发展的帮助:赋能行业变革,推动智能化未来,ai写作真的好吗
SEO努力:提升网站排名的关键策略,网站建设微企动力
ChatGPT:基于Transformer技术的语言模型,开创人工智能未来,AI独战OK
优化页面-提升用户体验与搜索引擎排名的关键,绍兴视频营销推广
ChatGPT显示无法加载网站是怎么回事?解决方法!,glow将军ai
为什么要年前做SEO,企业为什么做seo推广 ,云南ai大数据公司
洗文章AI:让内容创作变得更智能、更高效
SEO优化的话题:助力企业成功的关键,夏杰ai智能管家
ChatGPT登录503错误?轻松解决,快速恢复畅享智能体验!,ai怎么加植物材质效果
“关键词指白”:揭秘如何通过精准关键词优化实现流量暴增,全面分析网站seo
seo适合什么人做,哪种seo做得好 ,晋城ai论文写作免费
SEO运营是什么职业,seo运营工程师招聘 ,把ai图层改横幅
2025年SEO最新技术:让你的网站脱颖而出!,ai少女特色
seo的推广工具,seo推广软件哪个好 ,国内ai写作论文怎么样
整理文章的AI:提升写作效率的智能助手
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
GPT人工智能-让未来触手可及的智慧之光,ai头花写真
SEO开发:数字营销的核心驱动力,园区网站建设
seo要懂些什么,seo主要做什么的 ,小艾艾AI
SEO找词:如何精准找到高效关键词,提升排名和流量,河源网站优化平台
SEO优化如何为网站做好关键词研究和优化,ai直通
SEO优化顾问:让您的网站脱颖而出的秘密武器,ai ps 群
一秒采集:提升效率、创造价值的秘密武器,苏州网站整站优化
seo辅助词选什么,seo助手 ,各车企ai
ChatGPT当前不可用?如何应对AI服务中断的挑战,ai文章免费写作app
ChatGPT4网页空白:重新定义智能交互的未来,怎么登ai
AI批量文章工具,让写作变得高效与轻松,cs机器人ai
用AI生成的文章算原创吗?深度解析AI写作背后的秘密
SEO联系:如何通过SEO优化提升您的网络营销效果,企业营销推广获客
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
AI免费工具:提升效率与创意的秘密武器
ChatGPT-4中文免费破解版:无需付费,体验最强AI助手,ai写作生成器官方下载
为什么做seo矩阵项目,为什么做seo矩阵项目不能做 ,怎么用ai写作
ChatGPT连了外网也登不了?如何解决这一问题,重新畅享AI助力!,ai少女大瓜