Prioritatea operatorilor

Într-o expresie mai lungă, operatorii nu se aplică în ordinea în care sunt scriși, ci în funcție de prioritatea lor, după un principiu asemănător ordinii efectuării operațiilor din aritmetică: înmulțirea se face înaintea adunării, parantezele au la rândul lor întâietate etc.

Operatorii cu aceeași prioritate se evaluează în ordinea scrierii lor, de la stânga la dreapta.

Tabelul priorității

Operatorii sunt ordonați de la prioritatea cea mai mare (1, se evaluează primii) la cea mai mică (15, se evaluează ultimii).

PrioritateOperatoriCategorie
1( )parantezele
2+ - ! ++ --operatorii unari
3* / %aritmetici multiplicativi
4+ -aritmetici aditivi
5<< >>deplasările pe biți
6< <= > >=relaționali
7== !=relaționali de egalitate
8&„și” pe biți
9^„sau” exclusiv pe biți
10|„sau” pe biți
11&&„și” logic
12||„sau” logic
13?:operatorul ternar
14= += -= *= /=operatorii de atribuire
15,operatorul virgulă

De ce contează ordinea

Prioritatea decide ce se calculează mai întâi, deci și ce rezultat obținem. În exemplul de mai jos, înmulțirea se face înaintea adunării, exact ca în matematică:

int x = 2 + 3 * 4;     // 14, nu 20: * are prioritate mai mare decat +
int y = (2 + 3) * 4;   // 20: parantezele se evalueaza primele

Când nu ești sigur de ordinea de evaluare, folosește paranteze. Ele au prioritatea cea mai mare, fac expresia mai ușor de citit și te feresc de greșeli, chiar dacă uneori nu sunt strict necesare.