以下に C プログラムがあり、関数funcには 2 つのforループがあります。最初のforループでは、配列変数をインクリメントする際に「左辺値が必要です」というエラーは発生しませんが、2 番目のループでa配列変数をインクリメントする際に、コンパイラは「左辺値が必要です」というエラーを返します。なんで?cfor
#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
}
}