Precedenze

Quando in un’espressione compaiono più operatori il compilatore deve decidere sul loro livello di priorità e sulla loro associatività per tradurre correttamente in linguaggio macchina.

Operatori Categoria
[] . ()
++ —
postfissi
++ —
+ – ~ !
unari
new () creazione e casting
* / % moltiplicativi
+ – additivi
<< >> >>> di shift
< <= >= >
istanceof
condizionali
== != di uguaglianza
& AND
^ XOR
| OR
&& AND
|| OR
? : ternario
=
+= -= *= /= %=
&= ^= |=
<<= >>= >>>=
di assegnamento

Alcune regole pratiche

  • l’assegnamento avviene solo dopo che tutte le operazioni sono state elaborate…
  • gli operatori unari e funzionali precedono gli operatori binari e l’operatore ternario
  • gli operatori moltiplicativi precedono gli operatori additivi
  • gli operatori aritmetici precedono gli operatori condizionali, logici e relazionali (a differenza dei linguaggi non C…..)
  • a parità di precedenza vale l’associatività a sinistra… (tranne che per l’assegnamento)
  • le parentesi tonde forzano l’ordine di valutazione
  • … e permettono di scrivere espressioni corrette.