ฉันมีรหัสต่อไปนี้:
#include <stdio.h>
int main(int argc, char **argv) {
int i = 0;
(i+=10)+=10;
printf("i = %d\n", i);
return 0;
}
หากฉันพยายามรวบรวมเป็นแหล่ง C โดยใช้ gcc ฉันได้รับข้อผิดพลาด:
error: lvalue required as left operand of assignment
แต่ถ้าฉันรวบรวมเป็นซอร์ส C ++ โดยใช้ g ++ ฉันไม่ได้รับข้อผิดพลาดและเมื่อฉันเรียกใช้ไฟล์ปฏิบัติการ:
i = 20
ทำไมพฤติกรรมต่างกัน?