该代码当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 *数组衰减为指针的事实... *我更喜欢将衰减看作“衰减到数组地址* “而不是指针。 “阵列的地址”不能改变,也不能改变。 –