c 指针运算问题?修改
一、代码:
int a[]={1,2,3,4,5};
int *p;
p=a;
*(p++)=10;
int i;
for (i=0; i<sizeof(a)/sizeof(int); i++) {
printf("a[%d]=%d\n",i,a[i]);
}
输出:
a[0]=10
a[1]=2
a[2]=3
a[3]=4
a[4]=5
二、问题
明明指针往下移了,为什么a[0]=10,而不是a[1]=10?
ringa_lee2017-04-17 14:02:01
有個簡單的方法便於你理解:你可以依序列印p、p++((p++)取的還是p++這個標量值,或者此處你可以輸出&((p++)) )、p三者的值,看了結果就懂了*(p++)記憶體的位址還是p,之後才變成p+1