Operatori si operanzi in C++
In cadrul operatiilor effectuate in cadrul programelor, avem de-a face cu:
- operatorii - simboluri care indica operatia ce urmeaza a fi efectuata: adunare(+), scadere(-), inmultire (*), impartire (/) etc.
- operanzii - variabilele sau valorile utilizate in cadrul operatiilor.
Operatorii pot fi de trei feluri:
- unari - necesita un singur operand
- binari - necesita doi operanzi
- ternari - neceseita trei operanzi
O expresie reprezinta o combinatie intre mai multi operanzi si operatori, aceasta avand, ca si operanzii, un anumit tip, in functie de combinatia de operatorsi folositi.
Operatori aritmetici unari
Operator
|
Explicatii
|
Exemple
|
++
|
(Post/Pre)Incrementare - aduna valoarea 1 la valoarea operandului
|
i++ sau ++i
|
--
|
(Post/Pre)Decrementare - scade valoarea 1 de la valoarea operandului
|
i-- sau --i
|
-
|
Minus unar
|
-i
|
Explicatii pre/post incrementare/decrementare:
- y=++x este echivalent cu:
x=x+1;
y=x;
- y=x++ este echivalent cu:
y=x;
x=x+1;
- y=--x este echivalent cu:
x=x-1;
y=x;
- =x-- este echivalent cu:
y=x;
x=x-1;
Operatori aritmetici binari
Operator
|
Explicatii
|
Exemple
|
+
|
Adunarea a doi operanzi
|
x+y
|
-
|
Scaderea a doi operanzi
|
x-y
|
*
|
Inmultirea a doi operanzi
|
x*y
|
/
|
Impartirea a doi operanzi
|
x/y
|
%
|
Modulo – are ca rezultat restul impartirii a doi operanzi (se aplica doar operanzilor de tip intreg/char)
|
x%y
|
Observatii
- Daca in cadrul utilizarii unnui operato binar folosim operanzi de tip intreg, rezultatul va fi tot un numar intreg, chiar daca rezultatul mathematic poate fi de alt tip (real). De exemplu dacafacem impartirea x/y unde x si y sunt numere intregi (3/2), rezultatul va fi partea intreaga din raportul matematic (1).
- Operatorii aritmetici binari pot fi combinati cu operatorul de atribuire (=):
Operator
|
Explicatii
|
Exemple
|
+=
|
La operandul din stnga se aduna operandul din dreapta
|
x=x+y
|
-=
|
Din operandul din stnga se scade operandul din dreapta
|
x=x-y
|
*=
|
La operandul din stnga se inmulteste operandul din dreapta
|
x=x*y
|
/=
|
Operandul din stnga se imparte la operandul din dreapta
|
x=x/y
|
%=
|
La operandul din stnga se aduna operandul din dreapta ??????????????
|
x=x%y
|
Operatori relationali binari
Operator
|
Explicatii
|
Exemple
|
<
|
mai mic decat
|
x
|
>
|
mai mare decat
|
x>y
|
<=
|
mai mic sau egal decat
|
x<=y
|
>=
|
mai mare sau egal decat
|
x>-y
|
!=
|
diferit de
|
x!=y
|
==
|
egal cu
|
x==y
|
Operatori logici pe cuvant
Operator
|
Explicatii
|
Exemple
|
!
|
Negatie logica
|
!x
|
&&
|
SI logic
|
(xb)
|
||
|
SAU logic
|
(xb)
|
Negare
|
SI logic
|
SAU logic
|
|
op_1
|
op_2
|
&&
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
1
|
|
op_1
|
op_2
|
||
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
|
Operatorul conditional (?)
Este un operator care are in componenta 3 operanzi, avand forma generala urmatoare:
expresie_1 ? expresie_2 : expresie_3
Interpretare:
- se evalueaza expresie_1.
- daca aceasta este adevarata,
se executa expresie_2,
altfel
se executa expresie_3.