0
while((count++<n) && *s1++=*s2++);
  *s1='\0';

このコードを実行したところ、エラーが発生しましたlvalue required as left operand of assignment in c

修正できました

while((count++<n) && (*s1++=*s2++));
  *s1='\0';

これはうまくいきますが、その理由はわかりません。左辺値は割り当て可能な値である必要があり、定数であってはならないというスタックオーバーフローの他のスレッドを読みました.iはそれを関連付けることができません. (expression)値があって、ないからexpressionですか?で確認してみました

int c=3;
  int b=2;
 // printf("%d\n",c==b);
  printf("%d\n",(c=b));

どちらも同じ 2 という結果になりました。

4

1 に答える 1