我在下面有一个 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
}
}