Precedenza e associatività degli operatori
Ogni operatore nel set di operatori supportato dall'analizzatore di espressioni ha una precedenza specifica nella gerarchia delle precedenze e prevede una direzione di valutazione. La direzione di valutazione di un operatore è l'associatività dell'operatore. Gli operatori con precedenza superiore vengono valutati prima di quelli con precedenza inferiore. Se un'espressione complessa include più operatori, l'ordine di esecuzione è determinato dalla precedenza degli operatori. L'ordine di esecuzione può modificare in modo significativo il valore restituito. Alcuni operatori hanno la stessa precedenza. Se un'espressione contiene più operatori con la stessa precedenza, gli operatori verranno valutati nell'ordine in cui compaiono, procedendo da sinistra a destra o da destra a sinistra.
Nella tabella seguente vengono elencate le precedenze degli operatori, dalla più alta alla più bassa. Gli operatori indicati sullo stesso livello hanno la stessa precedenza.
Simbolo operatore | Tipo di operazione | Associatività |
---|---|---|
( ) | Expression | Da sinistra a destra |
-, !, ~ | Unario | Da destra a sinistra |
cast | Unario | Da destra a sinistra |
*, / ,% | Moltiplicazione | Da sinistra a destra |
+, - | Additive | Da sinistra a destra |
<, >, <=, >= | Relazionale | Da sinistra a destra |
==, != | Uguaglianza | Da sinistra a destra |
& | AND bit per bit | Da sinistra a destra |
^ | OR esclusivo bit per bit | Da sinistra a destra |
| | OR inclusivo bit per bit | Da sinistra a destra |
&& | AND logico | Da sinistra a destra |
|| | OR logico | Da sinistra a destra |
? : | Espressione condizionale | Da destra a sinistra |