Jaki jest wynik + = w C i C ++?
Mam następujący kod:
#include <stdio.h>
int main(int argc, char **argv) {
int i = 0;
(i+=10)+=10;
printf("i = %d\n", i);
return 0;
}
Jeśli spróbuję skompilować go jako źródło C za pomocą gcc, pojawia się błąd:
error: lvalue required as left operand of assignment
Ale jeśli skompiluję go jako źródło C ++ za pomocą g ++, nie otrzymam żadnego błędu i kiedy uruchomię plik wykonywalny:
i = 20
Dlaczego różne zachowania?