C语言高手解答

设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i个元素的地址为( B)。A.P+i*2     ... 设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( B)。A.P+i*2       B.  P+(i-1)*2      C.  P+(i-1)       D.  P+i
为什么不是D ,它是四种地址表达式的一种啊
展开
 我来答
245000169
2012-03-16 · 超过21用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:30.9万
展开全部

指针从首地址移动 i  次,并不是下标为 i  的元素。假如A的首地址是元素a[0]的地址,那么第七个元素的地址就是a[6]的地址,因为元素的下标是从0开始的,所以第七个元素的下标就是(7-1)=6。

所以可以这么说,第 i   的元素的地址就是a[i-1]的地址。又因为p是数组a的首地址,即

a[i-1]等价于p+(i-1);如果感觉不好理解,你可以画一下图就可以了。希望对你有帮助!

dlengong
2012-03-16 · TA获得超过279个赞
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:191万
展开全部
答案不对的,如果元素从第一个算起,那么就是D如果从第0个算起那么就是C
定义指针的时候指针类型已经确定了,所以它自增的时候就知道增一个单位是几个字节
而如果是B的话很明显是一个Byte的指针,它每一次就只增一个字节,所以要乘2
如果定义为short int *ptr的话就不用乘2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淦海瑶s1
2012-03-16 · TA获得超过3645个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:672万
展开全部
这个题目有点表述不清楚,在c中数组时从0开始的,一般来说a中的首元素习惯称之为第零个元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
w283398070
2012-03-16 · TA获得超过120个赞
知道小有建树答主
回答量:252
采纳率:0%
帮助的人:188万
展开全部
数组啊 i相当于下表 你找第i个元素 应该是p[i-1] 也就是p+i-1
追问
可是它是p+(i-1)*2
追答
答案是错,解释不通
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友577ecb7
2012-03-16
知道答主
回答量:27
采纳率:0%
帮助的人:22.7万
展开全部
不是D是c啊。。。。
追问
答案是B
追答
你的首地址P的类型是short,那么他加1就是后移2个字节,不用乘以2的。。。答案错了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式