一道c语言题目,高手解答!!!!详细说明答案是什么,并解释原因(重点解释C、D选项)。谢谢

若有定义inta[5],则下列对a数组元素或地址的引用错误的有()。A)&a[5]B)a[2]C)a++D)*aE)a[0]... 若有定义int a[5],则下列对a数组元素或地址的引用错误的有()。

A)&a[5]
B)a[2]
C)a++
D)*a
E)a[0]
展开
 我来答
shine1991
科技发烧友

2011-10-10 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
答案AC

A越界 ,不解释了

C很明显嘛,数组名是什么,是一个地址,是常量,常量可以自增么,当然不可以,lz见过2++的么,这个是错的

D和E一个意思,只不过表达起来不同而已
scookiem
2011-10-10 · TA获得超过839个赞
知道小有建树答主
回答量:245
采纳率:0%
帮助的人:68.4万
展开全部
A错的,数组定义的a[5],也就是a[0]~a[4];
C,a是首地址,a++也就是自加1,从a[0]指向了a[1]
D,对指针接引用,如果没有改变a指针,*a就等于a[0],如果经过C选项a++,那么*a就等于a[1]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ayen01
2011-10-10 · TA获得超过140个赞
知道答主
回答量:104
采纳率:0%
帮助的人:64.5万
展开全部
A ,C,D
a的错误是超过了数组上限,因为数组是从0开始的C,D的错误是把数组当成普通变量运算了,没有指定数组数列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wskldb
2011-10-10
知道答主
回答量:27
采纳率:0%
帮助的人:17.9万
展开全部
答案是A ,C,
C: a是数组的起始地址是不到改变的,所以错了,
D:是一个指针引用,相当于a[0]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寒竹真人
2011-10-10 · TA获得超过265个赞
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:155万
展开全部
A,数组a的下标从0到4,5超出了下标最大值
D,不能对数组使用*标志
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式