Operators in C++Tipuri cu exemplu
⚡ Rezumat inteligent
Operators in C++ sunt simboluri care efectuează operații asupra operanzilor, de la aritmetică și comparație până la acțiuni logice, pe biți și de atribuire. Această resursă explică fiecare categorie de operatori cu exemple de programe rulabile, ieșiri și regulile de precedență care decid ordinea de evaluare.

Care sunt Operatori?
Un operator este un simbol folosit pentru efectuarea de operații asupra operanzilor. Un operator operează asupra operanzilor, iar operațiile pot fi matematice sau logice. Există diferite tipuri de operatori în C++ pentru efectuarea diferitelor operatii.
Luați în considerare următoarea operațiune:
a = x + y;
În declarația de mai sus, x și y sunt operanzi în timp ce + este un operator de adunare. Când cel C++ compilatorul întâlnește declarația de mai sus, va adăuga x și y și va stoca rezultatul în variabila a.
Tipuri de Operators in C++
Există în principal 6 tipuri diferite de operatori în C++:
- Aritmetică Operatori
- Relațional Operatori
- Logic Operatori
- bitwise Operatori
- Cesiune Operatori
- Altele Operatori
Să începem cu operatorii aritmetici, categoria cea mai frecvent utilizată.
Aritmetică Operatori
Sunt tipurile de operatori utilizați pentru efectuarea operațiilor matematice/aritmetice. Ei includ:
| OperaTdR | Descriere |
|---|---|
| + operator de adăugare | Adună doi operanzi. |
| – subtracoperator de țiune | Subtracts 2nd operand de la 1st operand. |
| * operator de multiplicare | Înmulțește 2 operanzi. |
| / operator de diviziune | Împarte numărătorul cu numitorul. |
| operator de modul % | Returnează restul după împărțire. |
| ++ operator de increment | Mărește o valoare întreagă cu 1. |
| — operator de decrementare | Reduce o valoare întreagă cu 1. |
De exemplu:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; int c; cout << "a + b is :" << a+b << endl; //11+5 cout << "a - b is :" << a-b << endl; //11-5 cout << "a * b is :" << a*b << endl; //11*5 cout << "a / b is :" << a/b << endl; //11/5 cout << "a % b is :" << a%b << endl; //11%5 cout << "a++ is :" << a++ << endl; //11++ cout << "a-- is :" << a-- << endl; //12-- return 0; }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
- Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
- Apelarea funcției main() în care ar trebui adăugată logica programului. { marchează începutul corpului funcției main().
- Declararea unei variabile întregi a și inițializarea acesteia la 11.
- Declararea unei variabile întregi b și inițializarea acesteia la 5.
- Declararea unei variabile întregi c.
- Afișarea valorii operației a+b alături de alt text în consolă.
- Afișarea valorii operației ab alături de alt text în consolă.
- Afișarea valorii operației a*b alături de alt text în consolă.
- Afișarea valorii operației a/b alături de alt text în consolă.
- Afișează valoarea operației a%b alături de alt text în consolă.
- Afișarea valorii operației a++ alături de alt text în consolă.
- Afișarea valorii operației a– alături de alt text în consolă.
- Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
- Sfârșitul corpului funcției main().
Relațional Operatori
Aceste tipuri de operatori efectuează comparații pe operanzi. De exemplu, poate fi necesar să știți care operand este mai mare decât celălalt sau mai mic decât celălalt. Ei includ:
| OperaTdR | Descriere |
|---|---|
| == egal cu operatorul | Verifică egalitatea valorilor a doi operanzi. |
| != nu este egal cu operator | Verifică inegalitatea valorilor a doi operanzi. |
| > operatorul mai mare decât | Verifică dacă valoarea operandului din stânga este mai mare decât valoarea operandului din dreapta. |
| operatorul < mai mic decât | Verifică dacă valoarea operandului din stânga este mai mică decât valoarea operandului din dreapta. |
| >= mai mare sau egal cu operatorul | Verifică dacă valoarea operandului din stânga este mai mare sau egală cu valoarea operandului din dreapta. |
| Operatorul <= mai mic sau egal cu | Verifică dacă valoarea operandului din stânga este mai mică sau egală cu valoarea operandului din dreapta. |
De exemplu:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; cout << "a=11, b=5" << endl; if (a == b) { cout << "a == b is true" << endl; } else { cout << " a == b is false" << endl; } if (a < b) { cout << "a < b is true" << endl; } else { cout << "a < b is false" << endl; } if (a > b) { cout << "a > b is true" << endl; } else { cout << "a > b is false" << endl; } return 0; }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
- Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
- Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
- Declararea unei variabile întregi a și inițializarea acesteia la 11.
- Declararea unei variabile întregi b și inițializarea acesteia la 5.
- Tipărirea unui text pe consolă care indică valorile variabilelor a și b.
- Verificarea dacă a este egal cu b folosind o instrucțiune decizională de tip if.
- Text de afișat în consolă dacă operația a==b este adevărată.
- Partea de tip „else” a instrucțiunii if de mai sus, care precizează ce trebuie făcut dacă a==b este falsă.
- Text de afișat în consolă dacă operația a==b este falsă.
- Verificarea dacă a este mai mic decât b folosind o instrucțiune if.
- Text de imprimat pe consolă dacă operațiunea a
- Partea „altceva” pentru momentul în care un
- Text de imprimat pe consolă dacă operațiunea a
- Verificarea dacă a este mai mare decât b folosind o instrucțiune if.
- Text de afișat în consolă dacă operația a>b este adevărată.
- Partea „else” pentru momentul în care a>b este fals.
- Text de afișat în consolă dacă operația a>b este falsă.
- Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
- Sfârșitul corpului funcției main().
Logic Operatori
operatori logici combină două sau mai multe constrângeri/condiții. Operatorii logici completează, de asemenea, evaluarea condiției originale luate în considerare. Aceștia includ:
| OperaTdR | Descriere |
|---|---|
| Operatorul logic AND && | Condiția este adevărată dacă ambii operanzi sunt nenuli. |
| || operatorul logic SAU | Condiția este adevărată dacă unul dintre operanzi este diferit de zero. |
| ! operatorul logic NOT | Inversează starea logică a operandului. Dacă operandul este adevărat, operatorul ! îl face fals. |
De exemplu:
#include <iostream> using namespace std; int main() { int a = 5, b = 2, c = 6, d = 4; if (a == b && c > d) cout << "a equals to b AND c is greater than d\n"; else cout << "AND operation returned false\n"; if (a == b || c > d) cout << "a equals to b OR c is greater than d\n"; else cout << "Neither a is equal to b nor c is greater than d\n"; if (!b) cout << "b is zero\n"; else cout << "b is not zero"; return 0; }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
- Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
- Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
- { marchează începutul corpului funcției main().
- Declararea a 4 variabile întregi a, b, c și d și atribuirea lor de valori diferite.
- Folosind operatorul && (AND) în interiorul instrucțiunii if. Acesta unește două condiții. Prima condiție este falsă, iar a doua este adevărată, deci false&&true este fals; rezultatul lui if este fals.
- Text de afișat în consolă dacă instrucțiunea de mai sus este adevărată. Aceasta nu va fi executată.
- Partea care trebuie executată dacă instrucțiunea if de mai sus este falsă.
- Text de tipărit pe consolă dacă declarația if este falsă. Aceasta va fi executată.
- Utilizarea operatorului || (SAU) într-o instrucțiune if. Prima condiție este falsă, iar a doua este adevărată, deci false||true este adevărat; rezultatul instrucțiunii if este adevărat.
- Text de afișat în consolă dacă instrucțiunea de mai sus este adevărată. Aceasta va fi executată.
- Partea care trebuie executată dacă instrucțiunea if de mai sus este falsă.
- Text de tipărit pe consolă dacă declarația if este falsă. Acest lucru nu va fi executat.
- Verificarea dacă valoarea variabilei b este 0.
- Text de afișat în consolă dacă instrucțiunea de mai sus este adevărată. Aceasta nu va fi executată.
- Partea care trebuie executată dacă instrucțiunea if de mai sus este falsă.
- Text de tipărit pe consolă dacă declarația if este falsă. Aceasta va fi executată.
- Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
- Sfârșitul corpului funcției main().
bitwise Operatori
Operatori bitwise efectuează operații la nivel de bit asupra operanzilor. Mai întâi, operanzii sunt convertiți la nivel de bit, apoi se efectuează operațiile. Când operațiile aritmetice precum adunarea și subdivizareatracDacă țiunea este efectuată la nivel de bit, rezultatele pot fi obținute mai rapid. Acestea includ:
| OperaTdR | Descriere |
|---|---|
| & (ȘI pe bit) | Preia 2 numere (operanzi), apoi efectuează operația AND pe fiecare bit al celor două numere. Dacă ambele sunt 1, operația AND returnează 1, altfel 0. |
| | (SAU pe biți) | Preia 2 numere (operanzi), apoi efectuează operația SAU pe fiecare bit al celor două numere. Returnează 1 dacă unul dintre biți este 1. |
| ^ (XOR pe biți) | Preia 2 numere (operanzi), apoi efectuează operația XOR pe fiecare bit al celor 2 numere. Returnează 1 dacă ambii biți sunt diferiți. |
| << (schimba la stânga) | Preia două numere, apoi deplasează la stânga biții primului operand. Al doilea operand determină numărul total de poziții de deplasare. |
| >> (schimba la dreapta) | Preia două numere, apoi deplasează la dreapta biții primului operand. Al doilea operand determină numărul de poziții de deplasare. |
| ~ (NU pe bit) | Ia un număr, apoi inversează toți biții acestuia. |
#include <iostream> using namespace std; int main() { unsigned int p = 60; // 60 = 0011 1100 unsigned int q = 13; // 13 = 0000 1101 int z = 0; z = p & q; cout << "p&q is : " << z << endl; // 12 = 0000 1100 z = p | q; cout << "p|q is : " << z << endl; // 61 = 0011 1101 z = p ^ q; cout << "p^q is : " << z << endl; // 49 = 0011 0001 z = ~p; cout << "~p is : " << z << endl; // -61 = 1100 0011 z = p << 2; cout << "p<<2 is: " << z << endl; // 240 = 1111 0000 z = p >> 2; cout << "p>>2 is : " << z << endl; // 15 = 0000 1111 return 0; }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
- Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
- Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
- Declararea unei variabile întregi fără semn p și atribuirea acesteia a valorii 60, care este 0011 1100 în binar.
- Declararea unei variabile întregi fără semn q și atribuirea acesteia a valorii 13, care este 0000 1101 în binar.
- Declararea unei variabile întregi z și inițializarea acesteia la 0.
- Efectuarea operației pe biți & (ȘI) pe variabilele p și q și stocarea rezultatului în variabila z.
- Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
- Efectuarea bitwise | (OR) operație pe variabilele p și q și stocarea rezultatului în variabila z.
- Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
- Efectuarea operației ^ pe biți (XOR) pe variabilele p și q și stocarea rezultatului în variabila z.
- Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
- Efectuarea operației ~ (NOT) bit la bit asupra variabilei p și stocarea rezultatului în variabila z.
- Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
- Efectuarea operației de deplasare la stânga pe variabila p și stocarea rezultatului în variabila z.
- Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
- Efectuarea operației de schimbare la dreapta pe variabila p și stocarea rezultatului în variabila z.
- Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
- Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
- Sfârșitul corpului funcției main().
Cesiune Operatori
Operatori de misiune atribuie valori variabilelor. Operandul/variabila este adăugat în partea stângă a operatorului, în timp ce valoarea este adăugată în partea dreaptă. Variabila și valoarea trebuie să aparțină aceluiași tip de date, altfel C++ compilatorul va genera o eroare.
De exemplu:
x = 5;
În exemplul de mai sus, x este variabila/operandul, = este operatorul de atribuire, iar 5 este valoarea. Iată operatorii de atribuire populari în C++:
| OperaTdR | Descriere |
|---|---|
| = (operator de atribuire simplă) | Atribuie valoarea din dreapta variabilei din stânga. |
| += (Adăugați operator de atribuire AND) | Adaugă valoarea operandului din dreapta operandului din stânga, apoi atribuie rezultatul variabilei din stânga. |
| -= (Subtracoperatorul de atribuire t AND) | Subtracts obține valoarea operandului din dreapta din operandul din stânga, apoi atribuie rezultatul variabilei din stânga. |
| *= (operator de atribuire înmulțire ȘI) | Înmulțește valoarea operandului din stânga cu operandului din dreapta, apoi atribuie rezultatul variabilei din stânga. |
| /= (Diviziune și operator de atribuire) | Împarte valoarea operandului din stânga la operandul din dreapta, apoi atribuie rezultatul variabilei din stânga. |
De exemplu:
#include <iostream> using namespace std; int main() { int x = 5; cout << "Initial value of x is " << x << "\n"; x += 5; cout << "x += 5 gives :" << x << "\n"; x -= 5; cout << "x -= 5 gives : " << x << "\n"; x *= 5; cout << "x *= 5 gives :" << x << "\n"; x /= 5; cout << "x /= 5 gives : " << x << "\n"; return 0; }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
- Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
- Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
- { marchează începutul corpului funcției main().
- Declararea unei variabile întregi x și atribuirea acesteia la o valoare de 5.
- Afișează valoarea variabilei x alături de alt text în consolă. \n este un caracter de nouă linie.
- Adăugarea lui 5 la valoarea variabilei x și atribuirea rezultatului variabilei x.
- Afișarea valorii variabilei x în consolă alături de alt text.
- Subtracextragând 5 din valoarea lui x și atribuind rezultatul variabilei x.
- Afișarea valorii variabilei x în consolă alături de alt text.
- Înmulțirea valorii variabilei x cu 5 și atribuirea rezultatului variabilei x.
- Afișarea valorii variabilei x în consolă alături de alt text.
- Împărțirea valorii variabilei x la 5 și atribuirea rezultatului variabilei x.
- Afișarea valorii variabilei x în consolă alături de alt text.
- Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
- Sfârșitul corpului funcției main().
Altele Operatori
Altele Operatori include operatorul sizeof, virgulă Operator, Condițional Operator, și OperaPrecedența operatorilor. Să discutăm despre ceilalți operatori acceptați de C++:
dimensiunea operatorului
Acest operator determină dimensiunea unei variabile. Folosiți operatorul sizeof pentru a determina dimensiunea unui tip de date.
De exemplu:
#include <iostream> using namespace std; int main() { cout<<"Size of int : "<< sizeof(int) << "\n"; cout<<"Size of char : " << sizeof(char) << "\n"; cout<<"Size of float : " << sizeof(float) << "\n"; cout<<"Size of double : " << sizeof(double) << "\n"; return 0; }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
- Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
- Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
- Determinarea dimensiunii tipului de date întreg folosind operatorul sizeof și afișarea acesteia alături de alt text în consolă.
- Determinarea dimensiunii tipului de date caracter folosind operatorul sizeof și afișarea acesteia alături de alt text în consolă.
- Determinarea dimensiunii tipului de date float folosind operatorul sizeof și afișarea acesteia alături de alt text în consolă.
- Determinarea dimensiunii tipului de date double folosind operatorul sizeof și afișarea acesteia alături de alt text în consolă.
- Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
- Sfârșitul corpului funcției main().
virgulă OperaTdR
operator virgulă (,) declanșează efectuarea unei secvențe de operații. Exprimă primul operand și elimină rezultatul. Apoi, evaluează al doilea operand și returnează valoarea și tipul.
#include <iostream> using namespace std; int main() { int x, y; y = 100; x = (y++, y + 10, 99 + y); cout << x; return 0; }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
- Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
- Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
- Declararea a două variabile întregi x și y.
- Atribuirea variabilei ya de 100.
- Se folosește operatorul virgulă. Începe cu y la 100, apoi îl incrementează la 101 (y++). Apoi, y este adăugat la 10. În final, y, tot la 101, este adăugat la 99, rezultând 200. x este acum 200.
- Afișarea valorii variabilei x în consolă.
- Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
- Sfârșitul corpului funcției main().
Condiţional OperaTdR
Acest operator evaluează o condiție și acționează pe baza rezultatului evaluării.
Sintaxă:
Condition ? Expression2 : Expression3;
parametri:
- Condiția este condiția care urmează să fie evaluată.
- Expresia2 este expresia care va fi executată dacă condiția este adevărată.
- Expresia3 este expresia care va fi executată dacă condiția este falsă.
De exemplu:
#include <iostream> using namespace std; int main() { int a = 1, b; b = (a < 10) ? 2 : 5; cout << "value of b: " << b << endl; return 0; }
ieșire:
Iată o captură de ecran a codului:
Code Explicaţie:
- Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
- Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
- Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
- Declarând două variabile întregi a și b. Variabilei a i s-a atribuit valoarea 1.
- Atribuirea unei valori variabilei b. Dacă variabila a este mai mică decât 10, variabilei b i se va atribui valoarea 2, altfel i se va atribui valoarea 5.
- Afișarea valorii variabilei b în consolă alături de alt text.
- Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
- Sfârșitul corpului funcției main().
Operators Precedenta
O singură operație poate avea mai mult de un operator. În acest caz, prioritatea operatorului îl determină pe cel evaluat primul.
Următoarea listă arată prioritatea operatorilor în C++, cu prioritate descrescătoare de la stânga la dreapta:
(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=













