Precedenza tra operatori

17 marzo 2006

La precedenza tra operatori indica l’ordine con cui gli operatori vengono valutati dal compilatore. Un operatore con precedenza maggiore verrà valutato per prima rispetto ad un operatore con precedenza minore, anche se quest’ultimo figura prima dell’operatore con precedenza maggiore. Ecco un esempio:

int risultato = 4 + 5 * 7 + 3;

Il risultato in questo caso dipende proprio dalla precedenza tra operatori. In C++, l’operatore di moltiplicazione (*) ha precedenza rispetto all’operatore addizione (+). Quindi la moltiplicazione 5*7 avverrà prima di tutte le altre addizioni. Ecco la sequenza della risoluzione dell’espressione precendente:

int risultato = 4 + 5 * 7 + 3;
risultato = 4 + 35 + 3 = 42

Perché le operazioni siano effettuate con ordine diverso, sarà sufficiente introdurre delle parentesi tonde. Ad esempio se vogliamo moltiplicare la somma 4+5 con la somma di 7+3, basterà scrivere:

int risultato = (4 + 5) * (7 + 3);

La variabile risultato, in questo caso, varrà 90.

Facciamo ora un elenco di tutti gli operatori ordinati per livello di precedenza. Ad ogni riga della tabella è assegnato un livello di precendenza. L’operatore a maggior priorità avrà il valore 1 e a seguire quelli a priorità sempre più bassa

Livello di precedenzaOperatoreNome
1!Not, negazione
2*Moltiplicazione
2/Divisione
2%Modulo
3+Addizione
3-Sottrazione
4<Minore
4<=Minore uguale
4>Maggiore
4>=Maggiore uguale
5==Uguale (confronto)
5!=Diverso
6&&AND
7||OR
8=Assegnamento

Le parentesi risolvono praticamente il problema di conoscere la precedenza tra gli operatori. Per evitare errori ed aumentare la leggibilità del codice può essere consigliabile l’uso delle parentesi in ogni situazione in cui vi sia la presenza contemporanea di più operatori e si abbiano dubbi sulle precedenze.

Tutte le lezioni

1 ... 26 27 28 ... 55

Se vuoi aggiornamenti su Precedenza tra operatori inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su Precedenza tra operatori

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy