In questo tutorial apprenderete la precedenza e l'associatività degli operatori con l'aiuto di esempi.
Precedenza degli operatori
La precedenza degli operatori determina quale operatore viene eseguito per primo se in un'espressione è presente più di un operatore.
Prendiamo in considerazione un esempio:
 int x = 5 - 17* 6;
In C, la precedenza di *è maggiore di -e =. Quindi, 17 * 6viene valutato per primo. Quindi l'espressione coinvolgente -viene valutata come la precedenza di -è maggiore di quella di =.
Ecco una tabella di precedenza degli operatori da superiore a inferiore. La proprietà dell'associatività verrà discussa a breve.
Tabella di precedenza e associatività degli operatori
| Operatore | Significato di operatore | Associatività | 
|---|---|---|
| () () -> . | Chiamata funzionale Riferimento elemento array Selezione indiretta dei membri Selezione diretta dei membri | Da sinistra a destra | 
| ! ~ + - ++ - & * sizeof (tipo) | Negazione logica Bitwise (1 's) complemento unario più unari meno Incremento Decremento risoluzione del riferimento (Indirizzo) di riferimento Pointer restituisce la dimensione di un oggetto Typecast (conversione) | Da destra a sinistra | 
| * / % | Moltiplica Dividi resto | Da sinistra a destra | 
| + - | Binario più (addizione) Binario meno (sottrazione) | Da sinistra a destra | 
| << >> | Spostamento a sinistra Spostamento a destra | Da sinistra a destra | 
| < <= > > = | Minore di Minore o uguale Maggiore di Maggiore o uguale | Da sinistra a destra | 
| == ! = | Uguale a Non uguale a | Da sinistra a destra | 
| & | Bitwise AND | Da sinistra a destra | 
| ^ | OR esclusivo bit per bit | Da sinistra a destra | 
| | | OR bit per bit | Da sinistra a destra | 
| && | AND logico | Da sinistra a destra | 
| || | OR logico | Da sinistra a destra | 
| ?: | Operatore condizionale | Da destra a sinistra | 
| = * = / = % = + = - = & = = | = << = >> = | Assegnazione semplice Assegna prodotto Assegna quoziente Assegna resto Assegna somma Assegna differenza Assegna AND bit a bit Assegna XOR bit a bit Assegna OR bit a bit Assegna spostamento sinistro Assegna spostamento destro | Da destra a sinistra | 
| , | Separatore di espressioni | Da sinistra a destra | 
Associatività degli operatori
L'associatività degli operatori determina la direzione in cui viene valutata un'espressione. Per esempio,
 b = a;
Qui, il valore di a è assegnato a be non viceversa. È perché l'associatività =dell'operatore va da destra a sinistra.
Inoltre, se sono presenti due operatori con la stessa precedenza (priorità), l'associatività determina la direzione in cui vengono eseguiti.
Prendiamo in considerazione un esempio:
1 == 2! = 3
Qui, gli operatori ==e !=hanno la stessa precedenza. E la loro associatività va da sinistra a destra. Quindi, 1 == 2viene eseguito per primo.
L'espressione sopra è equivalente a:
(1 == 2)! = 3
Nota: se un'istruzione ha più operatori, è possibile utilizzare le parentesi ()per rendere il codice più leggibile.








