Saya punya kode berikut:
#include <stdio.h>
int main(int argc, char **argv) {
int i = 0;
(i+=10)+=10;
printf("i = %d\n", i);
return 0;
}
Jika saya mencoba mengkompilasinya sebagai sumber C menggunakan gcc, saya mendapatkan kesalahan:
error: lvalue required as left operand of assignment
Tetapi jika saya mengkompilasinya sebagai sumber C ++ menggunakan g ++ saya tidak mendapatkan kesalahan dan ketika saya menjalankan yang dapat dieksekusi:
i = 20
Mengapa perilakunya berbeda?