Operatori

https://www.programiz.com/article/increment-decrement-operator-difference-prefix-postfix

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

1. Operatorii Aritmetici

  • + : 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:

  • dacă a și b sunt numere întregi, a/b este un număr întreg și reprezintă câtul împărțirii lui a la b
  • dacă a este număr real sau b este număr real, a/b este un număr real și reprezintă rezultatul împărțirii lui a la b.

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 —

2. Operatorii relaționali

  • == : 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)

3. Operatorii Logici

  • ! : Negația logică (ex: !a)
  • && : Și logic (ex: a && b)
  • || : Sau logic (ex: a || b)

4. Operatorii de atribuire

  • = : 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)

5. Operatorii de Incrementare și Decrementare

  • ++ : Incrementare (ex: a++ sau ++a)
  • -- : Decrementare (ex: a-- sau --a)
  • 6. Operatorul condițional ?
  • Operatorul condițional este singurul operator ternar (cu trei operanzi) din C++.
  • Sintaxa lui este:
    expresie1 ? expresie2 : expresie3
    și se evaluează astfel:
  • se evaluează expresie1
    dacă rezultatul lui expresie1 este nenul (adevărat), se evaluează expresie2 și rezultatul acestei expresii va fi rezultatul operației ?
    dacă rezultatul lui 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.

  • Exemplu:
    int x; cin >> x; cout << (x % 2 == 0? “par” : “impar”);
CategorieOperatoriPrioritateAsociațieExempleExpresii Numerice
Operatori Unari++ (pre-incrementare), -- (pre-decrementare), - (negare unară), ! (negare logică), ~ (negare bitwise), * (dereferențiere), & (adresă), sizeof, typeidFoarte î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 dreaptaa * b, c / d, e % f6 * 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 dreaptaa + b, c - d7 + 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 dreaptaa < b, c >= d5 < 10 (rezultatul este true), 7 >= 7 (rezultatul este true)
Operatori de Egalitate== (egalitate), != (diferență)Mai micăStânga la dreaptaa == b, c != d8 == 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ângaa = b, c += d, e *= fx = 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ângaa ? b : ctrue ? 5 : 10 (rezultatul este 5), false ? 5 : 10 (rezultatul este 10)
Operatorii de Separator, (separator de expresii)MicăStânga la dreaptaa = 1, b = 2a = 1, b = 2 (primul a devine 1 și apoi b devine 2)