C语言题目

若有以下定义intx[10],*pt=x;则对x数组元素的正确应用是A)*&x[10]B)*(x+3)C)*(pt+10)D)pt+3答案B为什么啊... 若有以下定义

int x[10],*pt=x;
则对x数组元素的正确应用是
A)*&x[10]
B)*(x+3)
C)*(pt+10)
D)pt+3
答案B 为什么啊
展开
 我来答
不振荣0gY
2010-09-17
知道答主
回答量:23
采纳率:0%
帮助的人:0
展开全部
A.数组访问越界,定义的数组长度为10,索引从0开始计算,最大只能是9
C.和A类似,pt的地址指向数组X的第一个元素,则pt+10指向X数组的第11个 元素,而X只有10个元素,*(pt+10)访问的X的第11个元素,所以越界了。
D.pt+3是x数组的第4个元素的地址值,而不是数据

B.x为 x数组的第一个元素的地址值,x+3即为x数组的第4个元素的地址值,所以*(x+3)访问的是x数组的第4个元素的值。

不明白的可以留言.......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哥不帅你砍我
2010-09-17
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部
x是一个引用,指向数组的首地址
将引用x赋值给pt之后,pt也指向数组的首地址
A)x数组的长度为10从int[0]~int[9]
B)中x+3为元素第四个元素的地址 操作*(x+3)取地址内容即int[3] 正确
C)pt+10 错误原因同A 数组越界
D)pt+3属于对地址的操作,不是数组元素的应用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大板栗面包
2010-09-17 · TA获得超过254个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:172万
展开全部
A.不存在x[10],最多只有x[0],所以错
C.同上,越界了,最多只有pt+9,也错
D.pt+3是x[3]的地址,*(pt+3)才是x[3],还是错
所以,B
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式