#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;
}
Questo output di codice sembra essere 4 4 5
. Ma perché a+++i
è uguale a a++ + i
?È "a +++ i" uguale a "(a ++) + i" in C
È perché i compilatori leggono sempre il codice sorgente da sinistra a destra?
Oppure perché l'operazione segue the order of precedence?
E funzionerà allo stesso modo su tutti i compilatori?
relativo a [Perché non funziona a +++++ b in C?] (Http://stackoverflow.com/q/5341202/1708801) –