Operators in C++ cu Exemplu: Ce este, Tipuri și Programe

Care sunt Operatori?

Un operator este un simbol folosit pentru efectuarea de operații asupra operanzilor. Un operator operează operanzi. 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

Aritmetică Operatori

Sunt tipurile de operatori utilizați pentru efectuarea operațiilor matematice/aritmetice. Ei includ:

OperaTdR Descriere
+ operator de adăugare Se adaugă la operanzi.
– operator de scădere Scăderi 2nd operand de la 1st operand.
* operator de multiplicare Înmulțește 2 operanzi.
/ operator de divizie. Î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

Explicația codului:

  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. { 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. Imprimarea valorii operațiunii a+b alături de alt text pe consolă.
  8. Imprimarea valorii operațiunii ab alături de alt text pe consolă.
  9. Imprimarea valorii operațiunii a*b alături de alt text pe consolă.
  10. Imprimarea valorii operațiunii a/b alături de alt text pe consolă.
  11. Imprimarea valorii operațiunii a%b alături de alt text pe consolă.
  12. Imprimarea valorii operațiunii a++ alături de alt text pe consolă.
  13. Imprimarea valorii operațiunii a– alături de alt text pe 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 operator. Verifică egalitatea valorilor a doi operanzi.
!= nu este egal cu operator Verifică egalitatea valorilor a doi operanzi.
> grozav decât operatorul Verifică dacă valoarea operandului din stânga este mai mare decât valoarea operandului din dreapta.
< mai puțin decât operator. 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.
<= mai mic sau egal cu operatorul. 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

Explicația codului:

  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. { 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. Tipărirea unui text pe consolă care indică valorile variabilelor a și b.
  7. Efectuând operația aritmetică, a==b într-o declarație de luare a deciziilor if pentru a ști dacă este adevărată sau falsă. { marchează începutul corpului declarației if.
  8. Text de tipărit pe consolă dacă operația a==b este adevărată. Sfârșitul este a C++ cuvânt cheie pentru linia finală. Împinge cursorul pentru a începe tipărirea în linia următoare. } marchează sfârșitul corpului instrucțiunii if.
  9. Cealaltă parte a declarației if de mai sus. Spune ce trebuie făcut dacă operația a==b este falsă.
  10. Text de tipărit pe consolă dacă operația a==b este falsă. Sfârșitul este a C++ cuvânt cheie pentru linia finală. Împinge cursorul pentru a începe tipărirea în linia următoare. } marchează sfârșitul corpului declarației else.
  11. Efectuarea operației aritmetice, a
  12. Text de tipărit pe consolă dacă operația a C++ cuvânt cheie pentru linia finală. Împinge cursorul pentru a începe tipărirea în linia următoare. } marchează sfârșitul corpului instrucțiunii if.
  13. Cealaltă parte a declarației if de mai sus. Acesta precizează ce trebuie făcut dacă operația a
  14. Text de tipărit pe consolă dacă operația a C++ cuvânt cheie pentru linia finală. Împinge cursorul pentru a începe tipărirea în linia următoare. } marchează sfârșitul corpului declarației else.
  15. Efectuarea operației aritmetice a>b într-o declarație de luare a deciziilor if pentru a ști dacă este adevărată sau falsă. { marchează începutul corpului declarației if.
  16. Text de tipărit pe consolă dacă operația a>b este adevărată. Sfârșitul este a C++ cuvânt cheie pentru linia finală. Împinge cursorul pentru a începe tipărirea în linia următoare. } marchează sfârșitul corpului instrucțiunii if.
  17. Cealaltă parte a declarației if de mai sus. Afirmă ce trebuie făcut dacă operația a>b este falsă.
  18. Text de tipărit pe consolă dacă operația a>b este falsă. Sfârșitul este a C++ cuvânt cheie pentru linia finală. Împinge cursorul pentru a începe tipărirea în linia următoare. } marchează sfârșitul corpului declarației else.
  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 combina două/mai multe constrângeri/condiții. Operatorii logici completează, de asemenea, evaluarea stării inițiale luate în considerare. Ei includ:

OperaTdR Descriere
&& operator logic AND. Condiția este adevărată dacă ambii operanzi nu sunt zero.
|| operator logic SAU. Condiția este adevărată dacă unul dintre operanzi este diferit de zero.
! operator logic NOT. Acesta inversează starea logică a operandului. Dacă operandul este adevărat, ! operatorul o 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

Explicația codului:

  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 de valori diferite.
  6. Folosind operatorul && (ȘI) în interiorul instrucțiunii if. Ea unește două condiții, valoarea lui a este egală cu valoarea lui b și valoarea lui a este mai mare decât valoarea lui b. Prima condiție este falsă, a doua condiție este adevărată. False&&true este Fals, prin urmare, rezultatul dacă este fals.
  7. Text de tipărit pe consolă dacă afirmația if de mai sus este adevărată. Acest lucru nu va fi executat.
  8. Partea care trebuie executată dacă declarația if de mai sus este falsă.
  9. Text de tipărit pe consolă dacă declarația if este falsă. Aceasta va fi executată.
  10. Folosind || (OR) operator în cadrul unei instrucțiuni if. Ea unește două condiții, valoarea lui a este egală cu valoarea lui b și valoarea lui a este mai mare decât valoarea lui b. Prima condiție este falsă, a doua condiție este adevărată. Fals||true este adevărat, prin urmare, rezultatul dacă este adevărat.
  11. Text de imprimat pe consolă dacă afirmația de mai sus if este adevărată. Aceasta va fi executată.
  12. Partea care trebuie executată dacă declarația 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 este 0.
  15. Text de imprimat pe consolă dacă afirmația de mai sus if este adevărată. Acest lucru nu va fi executat.
  16. Partea care trebuie executată dacă declarația 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 biți asupra operanzilor. În primul rând, operatorii sunt convertiți la nivel de biți, apoi sunt efectuate operații asupra operanzilor. Când operațiunile aritmetice precum adunarea și scăderea sunt efectuate la nivel de biți, rezultatele pot fi obținute mai rapid. Ei includ:

OperaTdR Descriere
& (ȘI pe biți). Este nevoie de 2 numere (operanzi), apoi efectuează AND pe fiecare bit din două numere. Dacă ambele sunt 1, AND returnează 1, în caz contrar 0.
| (SAU pe biți) Preia 2 numere (operanzi), apoi efectuează SAU pe fiecare bit din două numere. Returnează 1 dacă unul dintre biți este 1.
^ (XOR pe biți) Preia 2 numere (operanzi), apoi efectuează XOR pe fiecare bit din 2 numere. Returnează 1 dacă ambii biți sunt diferiți.
<< (schimba la stânga) Ia două numere, apoi deplasează la stânga biții primului operand. Al doilea operand determină locurile totale de mutat.
>> (schimba la dreapta) Ia două numere, apoi deplasează la dreapta biții primului operand. Al doilea operand determină numărul de locuri de mutat.
~ (nu pe biți). Preia numărul, apoi își inversează toți biții.
#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

Explicația codului:

  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. { marchează începutul corpului funcției main().
  4. Declararea unei variabile întregi nesemnate p și atribuirea lui o valoare de 60, adică 0011 1100 în binar.
  5. Declararea unui întreg fără semn variabile q și atribuirea lui o valoare de 13, adică 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 ~ (NU) pe biți pe variabilele p și q ș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ă a operatorului. Variabila și valoarea trebuie să aparțină aceluiași tip de date, în caz contrar, C++ compilatorul va genera o eroare.
De exemplu:

x = 5;

În exemplul de mai sus, x este variabila/operandul, = este operatorul de atribuire, în timp ce 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.
-= (Scădere AND operator de atribuire) Scăde 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

Explicația codului:

  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 unui număr întreg variabilele x și atribuirea lui o valoare de 5.
  6. Imprimarea valorii variabilei x alături de alt text pe consolă. \n este un caracter de linie nouă. Mută ​​cursorul pe următoarea linie la imprimare.
  7. Adăugarea 5 la valoarea variabilei x și atribuirea rezultatului variabilei x.
  8. Imprimarea valorii variabilei x pe consolă alături de alt text.
  9. Scăderea 5 din valoarea lui x și atribuirea rezultatului variabilei x.
  10. Imprimarea valorii variabilei x pe consolă alături de alt text.
  11. Înmulțirea valorii variabilei x cu 5 și atribuirea rezultatului variabilei x.
  12. Imprimarea valorii variabilei x pe consolă alături de alt text.
  13. Împărțirea valorii variabilei x la 5 și atribuirea rezultatului variabilei x.
  14. Imprimarea valorii variabilei x pe 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 dimensiunea operatorului, virgulă Operator, Condițional Operator, și Operators Precedenta.
Să discutăm despre alți operatori susținuți de C++:

dimensiunea operatorului

Acest operator determină dimensiunea unei variabile. Utilizaț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

Explicația codului:

  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. { marchează începutul corpului funcției main().
  4. Determinarea dimensiunii tipului de date întreg folosind operatorul sizeof și tipărirea acestuia alături de alt text pe consolă.
  5. Determinarea dimensiunii tipului de date caracter folosind sizeof operator și tipărirea acestuia alături de alt text pe consolă.
  6. Determinarea dimensiunii tipului de date float folosind sizeof operator și tipărirea acestuia alături de alt text pe consolă.
  7. Determinarea dimensiunii tipului de date float folosind sizeof operator și tipărirea acestuia alături de alt text pe 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 renunță la rezultat. 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

Explicația codului:

  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. { marchează începutul corpului funcției main().
  4. Declararea a două variabile întregi x și y.
  5. Atribuirea variabilei ya de 100.
  6. Creșterea valorii lui y și atribuirea rezultatului variabilei x. Începe cu y la 100, apoi îl crește la 101 (y++). Apoi, y se adaugă la 10. În cele din urmă, y, încă la 101, se adaugă la 99, dând 200. x este acum 200.
  7. Imprimarea valorii variabilei x pe 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ă.
  • Expresia1 este expresia care trebuie executată dacă condiția este adevărată.
  • Expresia3 este expresia care trebuie 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

Explicația codului:

  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. { marchează începutul corpului funcției main().
  4. Declarând două variabile întregi a și b. Variabilei a i s-a atribuit valoarea 1.
  5. Atribuirea valorii variabilei b. Dacă variabilei a este mai mică de 10, lui b i se va atribui valoarea 2, în caz contrar, lui b i se va atribui valoarea 5.
  6. Imprimarea valorii variabilei b pe 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:

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

Rezumat

  • Operatorii sunt simboluri pentru efectuarea de operații logice și aritmetice.
  • Operatorii aritmetici ne ajută să efectuăm diverse operații aritmetice pe operanzi.
  • Operatorii relaționali ne ajută să realizăm diverse operații de comparare pe operanzi.
  • Operatorii logici ne ajută să realizăm diverse operații logice asupra operanzilor.
  • Operatori bitwise ajutați-ne să efectuăm operații pe bit pe operanzi.
  • Operatorii de atribuire ne ajută să efectuăm diverse operații aritmetice pe operanzi.
  • Operatorul sizeof returnează dimensiunea unei variabile sau a unui tip de date.
  • Operatorul virgulă execută o secvență de operații.
  • Operatorul condiționat evaluează o condiție și acționează pe baza rezultatului.