Ho il seguente codice:
#include <stdio.h>
int main(int argc, char **argv) {
int i = 0;
(i+=10)+=10;
printf("i = %d\n", i);
return 0;
}
Se provo a compilarlo come sorgente C usando gcc ottengo un errore:
error: lvalue required as left operand of assignment
Ma se lo compilo come sorgente C ++ usando g ++ non ottengo alcun errore e quando eseguo l'eseguibile:
i = 20
Perché il comportamento diverso?