#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
?Является ли «a +++ i» равным «(a ++) + i» в C
Это потому, что компиляторы всегда читают исходный код слева направо?
Или это потому, что операция следует за the order of precedence?
И будет ли он работать на всех компиляторах?
Относится к [Почему не работает +++++ b в C?] (Http://stackoverflow.com/q/5341202/1708801) –