谁能给我讲讲C语言中的枚举是什么意思啊!

谁能给我讲讲C语言中的枚举是什么意思啊!我不大懂,讲的好的加分!... 谁能给我讲讲C语言中的枚举是什么意思啊!我不大懂,讲的好的加分! 展开
 我来答
hi_xjy
2010-09-12 · TA获得超过2468个赞
知道大有可为答主
回答量:987
采纳率:0%
帮助的人:1540万
展开全部
你说的是C枚举类型吧。枚举是一个被命名的整型常数的集合。
枚举的说明与结构和联合相似, 其形式为: enum 枚举名{ 枚举值表 }枚举变量;
如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。
注意:
1.初始化时可以赋负数, 以后的标识符仍依次加1。
2.枚举变量只能取枚举说明结构中的某个标识符常量。
3.枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。不能进行自增,自减运算
4.只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。
5.枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。

参考资料: http://baike.baidu.com/view/116405.htm?fr=ala0_1#2

flower_mlh
2010-09-12 · 超过19用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:40.2万
展开全部
枚举的主要目的,我觉得就是使代码的可读性更好。如果没有枚举,其所要实现的功能也可以通过其它方式实现。
enum 枚举名{枚举值1,枚举值2,枚举值3,.....}
枚举值本身就是一个符号,但是它又有一个int值的属性。可以看看书,就不多说了。枚举值就是一些命名,通过其命名就能知道其真正的意义。

比如一个扑克牌花色的枚举类型
enum color{heart,spade,diamond,club}
你也可以自己默认用0表示heart,1表示spade,2表示diamond,3表示club。在判断花色时,
if(color==0)....
else if(color==1)....
else if(color==2)...
else...
这样,阅读性很差,你根本无法通过这些数字判断出来时什么花色,可能要开相关的文档。非常不利于排查错误和后期的维护。

你也可以使用define定义
#define heart 0
#define spade 1
#define diamond 2
#define club 3
但是这么多个define明显是不必要的,enum就不让你写这么多define了

访问枚举变量就用枚举名.枚举值
这样在程序的其它地方出现color.heart 时,你可以很清楚是牌的花色是红桃
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
叶小怜
2010-09-12 · TA获得超过408个赞
知道小有建树答主
回答量:379
采纳率:0%
帮助的人:262万
展开全部
我再补充一点:枚举的另一个重要作用是作为编译期常量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陈学阳
2010-09-14 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2.1万
采纳率:14%
帮助的人:5633万
展开全部
#include <stdio.h>

enum
{
Qi=1,//企划部
Cai,//财务部
Ren,//人力资源部
Shi,//市场部
};

main()
{
int n;

printf("1-企划部,2-财务部,3-人力资源部,4-市场部\n");
printf("请输入:");
scanf("%d",&n);

printf("你输入的是:");
switch(n)
{
case 1:
printf("企划部\n");
break;
case 2:
printf("财务部\n");
break;
case 3:
printf("人力资源部\n");
break;
case 4:
printf("市场部\n");
break;
}
}

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式