【发布时间】:2013-08-22 05:25:48
【问题描述】:
我在下面有一个 C 程序,在函数 func 中有两个 for 循环。在第一个for 循环中,在增加数组变量a 时没有“需要左值”错误,但是在第二个for 循环中增加数组变量c 时,编译器会给出“需要左值”错误。为什么?
#include<stdio.h>
#include<string.h>
void func(char a[],int n);
int main(int argc,char **argv){
char * s="Happy ,People\n\n";
func(s,strlen(s));
return 0;
}
void func(char a[],int n){
for(int i=0;i<n;i++){
printf("%c",*a++); //This works fine — no lvalue error here
}
char c[]="Happy ,People\n\n";
for(int i=0;i<n;i++){
printf("%c",*c++); // there is error coming here lvalue Required
}
}
【问题讨论】:
-
还有我的一个建议——只需为变量使用有意义的名称,而不是
a[]和c[]。无论如何,它是一个约定:)
标签: c arrays compiler-errors