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 为什么啊 展开
int x[10],*pt=x;
则对x数组元素的正确应用是
A)*&x[10]
B)*(x+3)
C)*(pt+10)
D)pt+3
答案B 为什么啊 展开
3个回答
展开全部
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个元素的值。
不明白的可以留言.......
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个元素的值。
不明白的可以留言.......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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属于对地址的操作,不是数组元素的应用
将引用x赋值给pt之后,pt也指向数组的首地址
A)x数组的长度为10从int[0]~int[9]
B)中x+3为元素第四个元素的地址 操作*(x+3)取地址内容即int[3] 正确
C)pt+10 错误原因同A 数组越界
D)pt+3属于对地址的操作,不是数组元素的应用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
A.不存在x[10],最多只有x[0],所以错
C.同上,越界了,最多只有pt+9,也错
D.pt+3是x[3]的地址,*(pt+3)才是x[3],还是错
所以,B
C.同上,越界了,最多只有pt+9,也错
D.pt+3是x[3]的地址,*(pt+3)才是x[3],还是错
所以,B
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询