*p+i和*(p+i)有什么区别啊?新人求解……

在一维数组里面,貌似*p+i和*(p+i)等价;在二维数组里面,貌似*p+i和*(p+i)不等价,这个是怎么回事?... 在一维数组里面,貌似*p+i和*(p+i)等价;
在二维数组里面,貌似*p+i和*(p+i)不等价,这个是怎么回事?
展开
 我来答
田真久
推荐于2017-11-27 · TA获得超过661个赞
知道小有建树答主
回答量:603
采纳率:100%
帮助的人:324万
展开全部
p如果是数组的指针,
指向的是数组的第一个元素,也就是说p就是第一个元素的地址,因此以为数组里面*p代表第一个元素的值,*p+i 代表第一个元素的值+i,而*(p+i)代表数组的第i个元素的值。

二维数组里面*p指向这个二维数组的第一个一维数组,*p+i 就是把这个地址偏移i;

*(p+i)是指向二维数组的第i个一维数组。
psxf91
2015-01-20 · TA获得超过428个赞
知道小有建树答主
回答量:558
采纳率:100%
帮助的人:486万
展开全部
一维数组里也不可能等价
+是一个双目运算符
所以*p+i是要先算*p的,然后把值加上i
而*(p+i),先算的p+i,就是指向了一个新的位置,然后再*,这样就取了新的那个位置的值。
于是,这个问题前提就错了,我只能解答到这里了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ylcqucc
2015-01-20 · TA获得超过1436个赞
知道小有建树答主
回答量:862
采纳率:0%
帮助的人:337万
展开全部
在一维数组里面,貌似*p+i和*(p+i)等价。//不正确

比如,int a[5],*p; p=&a[1];
*p+i,相当于a[1]+i
*(p+i),相当于a[i]

在二维数组里面,貌似*p+i和*(p+i)不等价。//正确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式