黑马程序员技术交流社区
标题:
*(P+i)与*P+i有什么区别?
[打印本页]
作者:
仁清
时间:
2015-6-15 21:30
标题:
*(P+i)与*P+i有什么区别?
*(P+i)与*P+i有什么区别?
作者:
goldboy
时间:
2015-6-15 21:39
用个例子来说明
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
不知道你看得懂不
作者:
Chasel
时间:
2015-6-16 10:11
楼上说的很详细
作者:
落水的兔子
时间:
2015-6-16 11:06
*(P+i)括号里面是取出一个地址P加上一个地址i的和的值, *P+i 是 取出地址p的值加上i,应该是这样吧
作者:
tabor
时间:
2015-6-16 12:30
妹子,你在学优先级吗? *后面接指针,指针代表地址,括号的优先级比*高,所以你应当懂的~
作者:
丁铭检
时间:
2015-6-16 13:10
*(p+i )是取p+i地址的内容,*p+i是取p地址的内容之后再加i
作者:
zhanghao2744491
时间:
2015-6-16 23:27
不是一回事。别问为什么 记住!
作者:
hanxujie
时间:
2015-6-17 06:12
*(p+i),*某某就是取某某的内容,在这里表示取(p+i)的值,*p+i,表示先取p的值然后再加上i,注意有括号的时候,括号里面就是一个整体,在看看优先级表的内容,我倒是觉得优先级没必要死记硬背,用的时候查查表记可以了。
作者:
fixer
时间:
2015-6-17 07:18
无括号表示值加,有括号表示地址加
作者:
yangzhen5352
时间:
2015-6-17 07:23
*(p+i)指向的是:第i+1个元素的值。
*p+i指向的是:第i+1个元素的地址。
作者:
yangzhen5352
时间:
2015-6-17 07:33
有道理,讲的不错
作者:
梦想中前行
时间:
2015-6-17 08:48
goldboy 发表于 2015-6-15 21:39
用个例子来说明
int a[10] = {1,2,3,4,5,6,7,8,9,10}
int *p = a;
你把数组里边第二个数换成别的不就看着好理解点了.
作者:
李言
时间:
2015-6-17 08:59
地址下一位的值,空间值+i
作者:
zilin
时间:
2015-6-17 09:04
第一个应该是地址的和然后取值,第二个是取p指针对应的值加上i
作者:
fanxing
时间:
2015-6-17 09:16
二楼说的很好
作者:
飞翔的猪
时间:
2015-6-17 09:26
结果都一样,都是2 ,可是意义不一样*(p+1)取得是a【1】的地址,值等于2,*p+1 取得值是a【0】+1,结果也是2,你明白了吗???
作者:
venn
时间:
2015-6-17 13:18
一楼解释的很好,,,
作者:
天下1083
时间:
2015-6-17 19:04
p是地址,*p是值,*(p+i)是指针移动后的值,*p+i是*p的值加上i,美女明白不
作者:
皇道金丹
时间:
2015-6-17 20:31
两个意思,不一样的
作者:
皇道金丹
时间:
2015-6-17 20:32
两个意思,不一样的概念
作者:
xiongmaoren518
时间:
2015-6-17 20:59
你问的应该是二维数组指针吧,*(p+i)是第i行的首地址,*(p+i)也等于p+i,他们都是表示第i行的首地址,*p+i表示第一行的第i个元素的地址
作者:
张国繁
时间:
2015-6-17 21:30
两个并不一样,区别是*(p+i)是指向数组第一个地址的值加 i 之后的地址,*p+i是指向数组的首地址的值再加上 i 的值。不知道我解释的对不对,仅供参考
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2