A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 仁清 中级黑马   /  2015-6-15 21:30  /  1966 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

*(P+i)与*P+i有什么区别?

21 个回复

倒序浏览
goldboy 来自手机 中级黑马 2015-6-15 21:39:46
沙发
用个例子来说明
int a[10] = {1,2,3,4,5,6,7,8,9,10}
int *p = a;
*p 等于a[0]  , *p 等于1, *p +1 等于2
*(p + 1) 等于a[1],即等于2
不知道你看得懂不
回复 使用道具 举报 1 0
楼上说的很详细
回复 使用道具 举报
*(P+i)括号里面是取出一个地址P加上一个地址i的和的值,  *P+i 是 取出地址p的值加上i,应该是这样吧
回复 使用道具 举报
妹子,你在学优先级吗? *后面接指针,指针代表地址,括号的优先级比*高,所以你应当懂的~
回复 使用道具 举报
*(p+i )是取p+i地址的内容,*p+i是取p地址的内容之后再加i
回复 使用道具 举报
不是一回事。别问为什么 记住!
回复 使用道具 举报
*(p+i),*某某就是取某某的内容,在这里表示取(p+i)的值,*p+i,表示先取p的值然后再加上i,注意有括号的时候,括号里面就是一个整体,在看看优先级表的内容,我倒是觉得优先级没必要死记硬背,用的时候查查表记可以了。
回复 使用道具 举报
fixer 中级黑马 2015-6-17 07:18:24
9#
无括号表示值加,有括号表示地址加
回复 使用道具 举报
yangzhen5352 来自手机 中级黑马 2015-6-17 07:23:34
10#
*(p+i)指向的是:第i+1个元素的值。
*p+i指向的是:第i+1个元素的地址。
回复 使用道具 举报
yangzhen5352 来自手机 中级黑马 2015-6-17 07:33:10
11#
有道理,讲的不错
回复 使用道具 举报
goldboy 发表于 2015-6-15 21:39
用个例子来说明
int a[10] = {1,2,3,4,5,6,7,8,9,10}
int *p = a;

你把数组里边第二个数换成别的不就看着好理解点了.
回复 使用道具 举报
地址下一位的值,空间值+i
回复 使用道具 举报
zilin 中级黑马 2015-6-17 09:04:59
14#
第一个应该是地址的和然后取值,第二个是取p指针对应的值加上i
回复 使用道具 举报
二楼说的很好
回复 使用道具 举报
结果都一样,都是2 ,可是意义不一样*(p+1)取得是a【1】的地址,值等于2,*p+1 取得值是a【0】+1,结果也是2,你明白了吗???
回复 使用道具 举报
venn 中级黑马 2015-6-17 13:18:27
17#
一楼解释的很好,,,
回复 使用道具 举报
p是地址,*p是值,*(p+i)是指针移动后的值,*p+i是*p的值加上i,美女明白不
回复 使用道具 举报
两个意思,不一样的
回复 使用道具 举报
两个意思,不一样的概念
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马