#include <stdio.h>
int main(void)
{
int a = 1, i = 3, x, y, z;
a = 1; i = 3;
x = a+++i;
a = 1; i = 3;
y = a++ + i;
a = 1; i = 3;
z = a + ++i;
printf("%d %d %d", x, y, z);
scanf(" ");
return 0;
}
Đầu ra mã này có vẻ là 4 4 5
. Nhưng tại sao là a+++i
tương đương với a++ + i
?Là "a +++ i" bằng "(a ++) +" trong C
Có phải vì trình biên dịch luôn đọc mã nguồn từ trái sang phải không?
Hoặc là do hoạt động sau the order of precedence?
Và nó có hoạt động giống nhau trên tất cả các trình biên dịch không?
Liên quan đến [Tại sao không +++++ b hoạt động trong C?] (Http://stackoverflow.com/q/5341202/1708801) –