該代碼當b遞增,被在增量這個C代碼如何工作,但另一個說L值需要?
#include<stdio.h>
int main()
{
int a[] = {10,20,30,40,50}, *p, j;
int *b = a;
for(j=0;j<5;j++)
{
printf("%d\n",*b);
b++;
}
return 0;
}
這裏會發生什麼印刷工作正常? ++有什麼影響建議lvalue
是必需的。 a ++是否在數組a的所有元素之後移動到一個點?
#include<stdio.h>
int main()
{
int a[] = {10,20,30,40,50}, *p, j;
for(j=0;j<5;j++)
{
printf("%d\n",*a);
a++;
}
return 0;
}
數組衰減爲指針並不意味着它們的行爲如同指針...... – LPs
請閱讀C中指針和數組之間的區別http://eli.thegreenplace.net/2009/10/21/is-pointers-and-arrays-equivalent-in-c – Fredrik
@LPs *數組衰減爲指針的事實... *我更喜歡將衰減看作「衰減到數組地址* 「而不是指針。 「陣列的地址」不能改變,也不能改變。 –