c语言中数组下标可以是枚举类型吗

 我来答
风若远去何人留
推荐于2018-03-30 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450127
专业C/C++软件开发

向TA提问 私信TA
展开全部
可以是枚举类型。
在C语言中,数组下标要求是整型数值。一般是非负整型数值,但实际上,负数下标在C语言中也是允许的。
而枚举类型,在C语言中有两种处理方式:
1 当枚举类型中不包含负值时,按照无符号整型处理;
2 当枚举类型中包含负值时,按照有符号整型处理;
无论是哪种形式,均符合C语言下标的要求。所以C语言数组下标可以是枚举类型。
风雷九州
推荐于2016-07-29 · TA获得超过3025个赞
知道大有可为答主
回答量:1127
采纳率:100%
帮助的人:429万
展开全部
可以的,没问题

其实枚举类型可以认为就是int类型,只是使用的时候注意别让数组越界了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
2015-03-26 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6407万
展开全部

可以!看以下代码

#include <stdio.h>
enum sub {one,two,three,four};
int main(void)
{
enum sub i;
int a[5]={0};
a[one]=1;
i=two;
a[i]=2;

printf("%d %d %d", a[0],a[1],a[2]);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-03-26
展开全部
#include <stdio.h>
enum
{
E1 = 0,
E2 = 1,
E3 = 2,

};

void main()
{
int a[3] = {1,2,3};
printf("%d %d %d\n",a[E1],a[E2],a[E3]); //打印出"1 2 3“

//所以看样子是可以用枚举类型作为数组下标的

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式