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
)expresie1
expresie1
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) |