Operatorii sunt simboluri sau secvențe de caractere care indică operatii specifice asupra variabilelor și valorilor.
Mai jos sunt prezentați operatorii utilizați frecvent în
+ : Adunare (ex: a + b)- : Scădere (ex: a - b)* : Înmulțire (ex: a * b)/ : Împărțire (ex: a / b)% : Modulo (restul împărțirii) (ex: a % b)++ : Incrementare (ex: a++ sau ++a – crește valoarea lui a cu 1)-- : Decrementare (ex: a-- sau --a – scade valoarea lui a cu 1)Operatorul de împărțire /
a/b se interpreteză astfel:
Exemplu:
7/2 = 3
7.0/2 = 3.5
7/2.0 = 3.5
7.0/2.0 = 3.5
Operatorul % se poate folosi doar cu numere întregi
a%b reprezintă restul împărțirii lui a la b, unde a și b sunt numere întregi
Exemplu:
7%2 = 1
10%5 = 0
Operatorii ++ și —
== : Egalitate (ex: a == b)!= : Diferit de (ex: a != b)> : Mai mare decât (ex: a > b)< : Mai mic decât (ex: a < b)>= : Mai mare sau egal cu (ex: a >= b)<= : Mai mic sau egal cu (ex: a <= b)! : Negația logică (ex: !a)&& : Și logic (ex: a && b)|| : Sau logic (ex: a || b)= : Atribuire (ex: a = b)+= : Adunare și atribuire (ex: a += b, echivalent cu a = a + b)-= : Scădere și atribuire (ex: a -= b, echivalent cu a = a - b)*= : Înmulțire și atribuire (ex: a *= b, echivalent cu a = a * b)/= : Împărțire și atribuire (ex: a /= b, echivalent cu a = a / b)%= : Modulo și atribuire (ex: a %= b, echivalent cu a = a % b)++ : Incrementare (ex: a++ sau ++a)-- : Decrementare (ex: a-- sau --a)expresie1expresie1 este nenul (adevărat), se evaluează expresie2 și rezultatul acestei expresii va fi rezultatul operației ?expresie1 este nul (fals), se evaluează expresie3 și rezultatul acestei expresii va fi rezultatul operației ?
expresie2 și expresie3 trebuie să aibă rezultate de același tip, sau de tipuri compatibile.| Categorie | Operatori | Prioritate | Asociație | Exemple | Expresii Numerice |
|---|
| Operatori Unari |
++ (pre-incrementare), -- (pre-decrementare), - (negare unară), ! (negare logică), ~ (negare bitwise), * (dereferențiere), & (adresă), sizeof, typeid
|
Foarte înaltă | Dreapta la stânga |
++a, --b, -x, !y, ~z, *ptr, &var, sizeof(int), typeid(a)
|
++a (dacă a este 5, ++a devine 6), -x (dacă x este 3, -x devine -3) |
| Operatori Aritmetici |
* (înmulțire), / (împărțire), % (modulo) |
Înaltă | Stânga la dreapta |
a * b, c / d, e % f
|
6 * 3 (rezultatul este 18), 9 / 3 (rezultatul este 3), 10 % 4 (rezultatul este 2) |
| Operatori de Adiție și Scădere |
+ (adiție), - (scădere) |
Mai mică | Stânga la dreapta |
a + b, c - d
|
7 + 3 (rezultatul este 10), 8 - 5 (rezultatul este 3) |
| Operatori de Comparare |
< (mai mic), > (mai mare), <= (mai mic sau egal), >= (mai mare sau egal) |
Mai mică | Stânga la dreapta |
a < b, c >= d
|
5 < 10 (rezultatul este true), 7 >= 7 (rezultatul este true) |
| Operatori de Egalitate |
== (egalitate), != (diferență) |
Mai mică | Stânga la dreapta |
a == b, c != d
|
8 == 8 (rezultatul este true), 9 != 5 (rezultatul este true) |
| Operatori Logici de Comparare |
&& (și logic), ` |
` (sau logic) | Mai mică | Stânga la dreapta |
| Operatorii de Asignare |
= (asignare), +=, -=, *=, /=, %=
|
Mică | Dreapta la stânga |
a = b, c += d, e *= f
|
x = 5 (x devine 5), y += 3 (dacă y era 7, acum y devine 10), z *= 2 (dacă z era 4, acum z devine 8) |
| Operatorul Ternar |
? : (operator ternar) |
Mică | Dreapta la stânga | a ? b : c |
true ? 5 : 10 (rezultatul este 5), false ? 5 : 10 (rezultatul este 10) |
| Operatorii de Separator |
, (separator de expresii) |
Mică | Stânga la dreapta | a = 1, b = 2 |
a = 1, b = 2 (primul a devine 1 și apoi b devine 2) |