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.

  • ➕ Aritmetică Operators: Efectuați operații matematice precum adunarea, subdivizareatracțiune, înmulțire, împărțire, modul, incrementare și decrementare a operanzilor numerici.
  • 🇧🇷 Relațional Operators: Comparați doi operanzi folosind verificări de egalitate și ordonare, returnând un rezultat adevărat sau fals.
  • 🔗 Logic Operators: Combinați sau inversați condițiile cu ȘI, SAU și NU pentru a controla deciziile din program.
  • 🔢 bitwise Operators: OperaOperații directe pe biți individuali folosind operațiile AND, OR, XOR, NOT și deplasare pentru o muncă mai rapidă la nivel scăzut.
  • 📝 Sarcină și altele Operators: Atribuiți valori, plus sizeof, virgulă și operatorul condițional, fiecare demonstrat cu un exemplu de ieșire.
  • 📊 OperaPrecedență tor: Regulile de precedență determină care operator dintr-o expresie complexă este evaluat primul.

Operators in C++

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

  1. Aritmetică Operatori
  2. Relațional Operatori
  3. Logic Operatori
  4. bitwise Operatori
  5. Cesiune Operatori
  6. 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:

Aritmetică Operatori

Iată o captură de ecran a codului:

Aritmetică Operatori

Code Explicaţie:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  3. Apelarea funcției main() în care ar trebui adăugată logica programului. { marchează începutul corpului funcției main().
  4. Declararea unei variabile întregi a și inițializarea acesteia la 11.
  5. Declararea unei variabile întregi b și inițializarea acesteia la 5.
  6. Declararea unei variabile întregi c.
  7. Afișarea valorii operației a+b alături de alt text în consolă.
  8. Afișarea valorii operației ab alături de alt text în consolă.
  9. Afișarea valorii operației a*b alături de alt text în consolă.
  10. Afișarea valorii operației a/b alături de alt text în consolă.
  11. Afișează valoarea operației a%b alături de alt text în consolă.
  12. Afișarea valorii operației a++ alături de alt text în consolă.
  13. Afișarea valorii operației a– alături de alt text în consolă.
  14. Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
  15. 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:

Relațional Operatori

Iată o captură de ecran a codului:

Relațional Operatori

Code Explicaţie:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  3. Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
  4. Declararea unei variabile întregi a și inițializarea acesteia la 11.
  5. Declararea unei variabile întregi b și inițializarea acesteia la 5.
  6. Tipărirea unui text pe consolă care indică valorile variabilelor a și b.
  7. Verificarea dacă a este egal cu b folosind o instrucțiune decizională de tip if.
  8. Text de afișat în consolă dacă operația a==b este adevărată.
  9. Partea de tip „else” a instrucțiunii if de mai sus, care precizează ce trebuie făcut dacă a==b este falsă.
  10. Text de afișat în consolă dacă operația a==b este falsă.
  11. Verificarea dacă a este mai mic decât b folosind o instrucțiune if.
  12. Text de imprimat pe consolă dacă operațiunea a
  13. Partea „altceva” pentru momentul în care un
  14. Text de imprimat pe consolă dacă operațiunea a
  15. Verificarea dacă a este mai mare decât b folosind o instrucțiune if.
  16. Text de afișat în consolă dacă operația a>b este adevărată.
  17. Partea „else” pentru momentul în care a>b este fals.
  18. Text de afișat în consolă dacă operația a>b este falsă.
  19. Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
  20. 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:

Logic Operatori

Iată o captură de ecran a codului:

Logic Operatori

Code Explicaţie:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  3. Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
  4. { marchează începutul corpului funcției main().
  5. Declararea a 4 variabile întregi a, b, c și d și atribuirea lor de valori diferite.
  6. 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.
  7. Text de afișat în consolă dacă instrucțiunea de mai sus este adevărată. Aceasta nu va fi executată.
  8. Partea care trebuie executată dacă instrucțiunea if de mai sus este falsă.
  9. Text de tipărit pe consolă dacă declarația if este falsă. Aceasta va fi executată.
  10. 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.
  11. Text de afișat în consolă dacă instrucțiunea de mai sus este adevărată. Aceasta va fi executată.
  12. Partea care trebuie executată dacă instrucțiunea if de mai sus este falsă.
  13. Text de tipărit pe consolă dacă declarația if este falsă. Acest lucru nu va fi executat.
  14. Verificarea dacă valoarea variabilei b este 0.
  15. Text de afișat în consolă dacă instrucțiunea de mai sus este adevărată. Aceasta nu va fi executată.
  16. Partea care trebuie executată dacă instrucțiunea if de mai sus este falsă.
  17. Text de tipărit pe consolă dacă declarația if este falsă. Aceasta va fi executată.
  18. Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
  19. 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:

bitwise Operatori

Iată o captură de ecran a codului:

bitwise Operatori

Code Explicaţie:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  3. Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
  4. Declararea unei variabile întregi fără semn p și atribuirea acesteia a valorii 60, care este 0011 1100 în binar.
  5. Declararea unei variabile întregi fără semn q și atribuirea acesteia a valorii 13, care este 0000 1101 în binar.
  6. Declararea unei variabile întregi z și inițializarea acesteia la 0.
  7. Efectuarea operației pe biți & (ȘI) pe variabilele p și q și stocarea rezultatului în variabila z.
  8. Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
  9. Efectuarea bitwise | (OR) operație pe variabilele p și q și stocarea rezultatului în variabila z.
  10. Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
  11. Efectuarea operației ^ pe biți (XOR) pe variabilele p și q și stocarea rezultatului în variabila z.
  12. Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
  13. Efectuarea operației ~ (NOT) bit la bit asupra variabilei p și stocarea rezultatului în variabila z.
  14. Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
  15. Efectuarea operației de deplasare la stânga pe variabila p și stocarea rezultatului în variabila z.
  16. Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
  17. Efectuarea operației de schimbare la dreapta pe variabila p și stocarea rezultatului în variabila z.
  18. Imprimarea rezultatului operației de mai sus pe consolă alături de alt text.
  19. Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
  20. 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:

Cesiune Operatori

Iată o captură de ecran a codului:

Cesiune Operatori

Code Explicaţie:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  3. Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
  4. { marchează începutul corpului funcției main().
  5. Declararea unei variabile întregi x și atribuirea acesteia la o valoare de 5.
  6. Afișează valoarea variabilei x alături de alt text în consolă. \n este un caracter de nouă linie.
  7. Adăugarea lui 5 la valoarea variabilei x și atribuirea rezultatului variabilei x.
  8. Afișarea valorii variabilei x în consolă alături de alt text.
  9. Subtracextragând 5 din valoarea lui x și atribuind rezultatul variabilei x.
  10. Afișarea valorii variabilei x în consolă alături de alt text.
  11. Înmulțirea valorii variabilei x cu 5 și atribuirea rezultatului variabilei x.
  12. Afișarea valorii variabilei x în consolă alături de alt text.
  13. Împărțirea valorii variabilei x la 5 și atribuirea rezultatului variabilei x.
  14. Afișarea valorii variabilei x în consolă alături de alt text.
  15. Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
  16. 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:

dimensiunea operatorului

Iată o captură de ecran a codului:

dimensiunea operatorului

Code Explicaţie:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  3. Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
  4. Determinarea dimensiunii tipului de date întreg folosind operatorul sizeof și afișarea acesteia alături de alt text în consolă.
  5. Determinarea dimensiunii tipului de date caracter folosind operatorul sizeof și afișarea acesteia alături de alt text în consolă.
  6. Determinarea dimensiunii tipului de date float folosind operatorul sizeof și afișarea acesteia alături de alt text în consolă.
  7. Determinarea dimensiunii tipului de date double folosind operatorul sizeof și afișarea acesteia alături de alt text în consolă.
  8. Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
  9. 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:

virgulă OperaTdR

Iată o captură de ecran a codului:

virgulă OperaTdR

Code Explicaţie:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  3. Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
  4. Declararea a două variabile întregi x și y.
  5. Atribuirea variabilei ya de 100.
  6. 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.
  7. Afișarea valorii variabilei x în consolă.
  8. Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
  9. 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:

Condiţional OperaTdR

Iată o captură de ecran a codului:

Condiţional OperaTdR

Code Explicaţie:

  1. Includerea fișierului antet iostream în codul nostru. Ne va permite să citim și să scriem pe consolă.
  2. Includerea spațiului de nume std pentru a-și folosi clasele și funcțiile fără a-l apela.
  3. Apelarea funcției main() în interiorul căreia ar trebui adăugată logica programului.
  4. Declarând două variabile întregi a și b. Variabilei a i s-a atribuit valoarea 1.
  5. 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.
  6. Afișarea valorii variabilei b în consolă alături de alt text.
  7. Funcția main() ar trebui să returneze o valoare dacă programul rulează bine.
  8. 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:

(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=

Întrebări frecvente

Asistenții de codare cu inteligență artificială pot sugera operatorul corect, pot explica precedența și pot semnala greșeli precum confundarea lui = cu ==. Aceștia accelerează învățarea, dar înțelegerea comportamentului operatorilor rămâne esențială pentru scrierea unui cod fiabil.

Nu. Instrumentele de inteligență artificială pot formata și revizui expresii, dar precedența afectează direct rezultatul programului. Cunoașterea precedenței vă ajută să citiți codul, să depanați erorile logice și să scrieți expresii care se comportă exact așa cum au fost concepute.

OperaSupraîncărcarea operatorului (tor) vă permite să redefiniți modul în care funcționează un operator pentru tipurile definite de utilizator, cum ar fi clasele. De exemplu, puteți supraîncărca operatorul + pentru a adăuga două obiecte, oferind tipurilor personalizate un comportament intuitiv, asemănător cu cel încorporat.

Prefixul (++i) incrementează mai întâi valoarea, apoi o returnează. Postfixul (i++) returnează mai întâi valoarea curentă, apoi o incrementează. Diferența contează atunci când incrementul este utilizat în interiorul unei expresii mai mari.

Operatorul = atribuie o valoare unei variabile, în timp ce operatorul == compară două valori pentru egalitate și returnează „adevărat” sau „fals”. Utilizarea greșită a lui = în interiorul unei condiții este o eroare frecventă.

Rezumați această postare cu: