我在下面有一个 C 程序,在函数func
中有两个for
循环。在第一个for
循环中,在增加数组变量a
时没有“需要左值”错误,但c
在第二个for
循环中增加数组变量时,编译器会给出“需要左值”错误。为什么?
#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
}
}