У мене такий код:
#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
Але якщо я скомпілюю його як джерело C ++ за допомогою g ++, я не отримую помилок, і коли я запускаю виконуваний файл:
i = 20
Чому інша поведінка?