Eu tenho o seguinte código:
#include <stdio.h>
int main(int argc, char **argv) {
int i = 0;
(i+=10)+=10;
printf("i = %d\n", i);
return 0;
}
Se eu tentar compilá-lo como uma fonte C usando gcc, recebo um erro:
error: lvalue required as left operand of assignment
Mas se eu compilá-lo como uma fonte C ++ usando g ++, não recebo nenhum erro e quando executo o executável:
i = 20
Por que o comportamento diferente?