私は次のコードを持っています:
#include <stdio.h>
int main(int argc, char **argv) {
int i = 0;
(i+=10)+=10;
printf("i = %d\n", i);
return 0;
}
gccを使用してCソースとしてコンパイルしようとすると、エラーが発生します。
error: lvalue required as left operand of assignment
しかし、g ++を使用してC ++ソースとしてコンパイルした場合、エラーは発生せず、実行可能ファイルを実行すると次のようになります。
i = 20
なぜ異なる動作ですか?