4个回答
展开全部
你说的是C枚举类型吧。枚举是一个被命名的整型常数的集合。
枚举的说明与结构和联合相似, 其形式为: enum 枚举名{ 枚举值表 }枚举变量;
如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。
注意:
1.初始化时可以赋负数, 以后的标识符仍依次加1。
2.枚举变量只能取枚举说明结构中的某个标识符常量。
3.枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。不能进行自增,自减运算
4.只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。
5.枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。
枚举的说明与结构和联合相似, 其形式为: enum 枚举名{ 枚举值表 }枚举变量;
如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始, 顺次赋给标识符0, 1, 2, ...。但当枚举中的某个成员赋值后, 其后的成员按依次加1的规则确定其值。
注意:
1.初始化时可以赋负数, 以后的标识符仍依次加1。
2.枚举变量只能取枚举说明结构中的某个标识符常量。
3.枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。不能进行自增,自减运算
4.只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。
5.枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。
参考资料: http://baike.baidu.com/view/116405.htm?fr=ala0_1#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 时,你可以很清楚是牌的花色是红桃
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 时,你可以很清楚是牌的花色是红桃
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我再补充一点:枚举的另一个重要作用是作为编译期常量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
}
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
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;
}
}
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询