黑马程序员技术交流社区
标题:
*(P+i)和*p++问题
[打印本页]
作者:
星河鹭起
时间:
2014-4-25 11:51
标题:
*(P+i)和*p++问题
复习指针时遇到个不懂的
for(int i=0;i<6;i++)
{
printf("%d %d\n",i,*(p+i));
}
这个地方p的值永远不会变化。
p地址每次都加1,指针值每次都在改变。
for(int i=0;i<6;i++)
{
printf("%d %d\n",i,*(p++));
}
而这个p值一直都在变化,为什么呢?
作者:
gaoxinglei123
时间:
2014-4-25 11:58
p++是自增,改变了p本身 即运算后p=p+1; p+1并未改变p本身
作者:
葬花桥
时间:
2014-4-25 12:03
上一个*(p+i)与p[i]是等价的,每次输出p[i]值,但是p本身的值还是指向p[0]的地址,下面一个 *(p++) 中有个后增运算符++ 所以在输出*(p)之后,p的地址会增加一个单位长度,这个长度和p的类型有关,希望帮到你
作者:
星河鹭起
时间:
2014-4-25 12:10
懂了,谢谢大家
作者:
bmzhanglei
时间:
2014-4-25 12:52
p++只是改变了p本身 即运算后p=p+1;p的地址还是指向p[0]
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2