C 指针有关问题

C 指针问题
本帖最后由 wsm0712syb 于 2013-01-02 18:34:40 编辑

#include <stdio.h>
main(){
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
*p++=i;
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p++);
}
这端程序是错误的,但是如果把输出里面的*p++改为*p ,怎么就对了
#include <stdio.h>
main(){
int *p,i,a[10];
p=a;
for(i=0;i<10;i++)
*p++=i;
for(i=0;i<10;i++)
printf("a[%d]=%d\n",i,*p);
}
C 指针有关问题

为什么会执行成功了?*p指向哪了
c 指针

------解决方案--------------------
因为p=a,取一个数组中的值后,数组下标是自动指向下一个下标,
所以最后做结果输出中循环输出*p实际就是在遍历数组a,即a[i]==*p