У меня есть следующий код:
#include <stdio.h>
int main(int argc, char **argv) {
int i = 0;
(i+=10)+=10;
printf("i = %d\n", i);
return 0;
}
Если я попытаюсь скомпилировать его как источник C с помощью gcc, я получаю сообщение об ошибке:
error: lvalue required as left operand of assignment
Но если я скомпилирую его как источник С++ с помощью g++, я не получаю ошибки и при запуске исполняемого файла:
i = 20
Почему различное поведение?