在使用指针时,我编写了以下代码,
int main()
{
int a[]={10,20,30,40,50};
int i;
for(i=0;i<5;i++)
{
printf("\n%d",*a);
a++;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在根据我的理解,数组名称本身是c中的地址,根据我的知识,完成的指针算法是正确的.但是,当我尝试运行代码时,它给了我"Lvalue Required"错误.
那么出现Lvalue所需错误的确切原因是什么呢?因为在此之前我也遇到过这种错误的情况.其次,为什么指针的算术在这种情况下不合法呢?
你不能a++在静态数组上做- 这不是左值.你需要在指针上做.试试这个:
int *ptr = a;
int i;
for(i=0;i<5;i++)
{
printf("\n%d",*ptr);
ptr++;
}
Run Code Online (Sandbox Code Playgroud)
虽然在这种情况下,最好只使用索引:
int i;
for(i=0;i<5;i++)
{
printf("\n%d",a[i]);
}
Run Code Online (Sandbox Code Playgroud)