¿Cuál es el resultado de + = en C y C ++?
Tengo el siguiente código:
#include <stdio.h>
int main(int argc, char **argv) {
int i = 0;
(i+=10)+=10;
printf("i = %d\n", i);
return 0;
}
Si intento compilarlo como una fuente de C usando gcc obtengo un error:
error: lvalue required as left operand of assignment
Pero si lo compilo como una fuente de C ++ usando g ++ no obtengo ningún error y cuando ejecuto el ejecutable:
i = 20
¿Por qué el comportamiento diferente?