In VC2008, ho digitato questo codice:Perché il risultato 2 + 1 e 0 è 0?
int a = 2 + 1 & 0;
e il risultato di questa espressione è a = 0
Perché il risultato è 0, ma non 2?
In VC2008, ho digitato questo codice:Perché il risultato 2 + 1 e 0 è 0?
int a = 2 + 1 & 0;
e il risultato di questa espressione è a = 0
Perché il risultato è 0, ma non 2?
Perché il &
operatore is evaluated after l'operatore +
e 3 & 0
uguale 0
.
Ovviamente è possibile posizionare le parentesi attorno alle espressioni per modificare l'ordine di valutazione. Per esempio:
int a = 2 + (1 & 0);
/* a == 2 */
ricerca Operatore di precedenza in C/C++. –