#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;
}
此代碼輸出似乎爲4 4 5
。但爲什麼a+++i
等於a++ + i
?C中的「a +++ i」等於「(a ++)+ i」
是不是因爲編譯器總是從左到右閱讀源代碼?
還是因爲操作遵循the order of precedence?
它會在所有的編譯器上都一樣嗎?
與[爲什麼不在+++++ b中工作在C?](http://stackoverflow.com/q/5341202/1708801) – 2014-10-17 17:50:51