y+=*(p+x)是怎么解释?(一个初学C学生的困惑)
include <stdio.h>
main()
{
int a[]={2,4,5,7,11,12},x,y=0,*p;
p=&a[1];
for(x=0;x<=3;x++) y+=*(p+x);
printf("%d",y);
getch();
}
include <stdio.h>
main()
{
int a[]={2,4,5,7,11,12},x,y=0,*p;
p=&a[1];
for(x=0;x<=3;x++) y+=*(p+x);
printf("%d",y);
getch();
}
2007-06-26 14:40
2007-06-26 14:46

2007-06-26 14:53
谢谢你herbert_1987. 不.应该称你老师啦!
你真不简单.
懂啦
2007-06-26 14:59
a[n] 和 *(a+n)是完全相等的。
同样,*(p+x) 和 p[x]是完全相等的。
而 p=&a[1],换种表示方法就是 p=&*(a+1)=a+1。
所以 *(p+x) 也就是 *(a+1+x) 也就是 a[1+x]。
还有看不懂的就去问 herbert_1987。

2007-06-26 15:04
[此贴子已经被作者于2007-6-26 15:16:35编辑过]
2007-06-26 15:15
2007-06-26 15:26
谢谢huangfengchu. 很有道理.
2007-06-26 15:33
2007-06-26 19:05
2007-06-26 19:09