Operatorer ind C++Typer med eksempel

⚡ Smart opsummering

Operatorer ind C++ er symboler, der udfører operationer på operander, lige fra aritmetiske og sammenligningshandlinger til logiske, bitvise og tildelingshandlinger. Denne ressource forklarer hver operatorkategori med kørbare eksempelprogrammer, output og de prioritetsregler, der bestemmer evalueringsrækkefølgen.

  • ➕ Aritmetik Operators: Udfør matematiske operationer såsom addition, subtraktiontraction, multiplikation, division, modulus, forøgelse og dekrement på numeriske operander.
  • ⚖️ Relationel Operators: Sammenlign to operander ved hjælp af ligheds- og ordenstjek, og returner et sandt eller falsk resultat.
  • 🔗 Logisk Operators: Kombiner eller omvendt betingelser med AND, OR og NOT for at styre programbeslutninger.
  • 🔢 bitvise Operators: Operate direkte på individuelle bits ved hjælp af AND-, OR-, XOR-, NOT- og shift-operationer for hurtigere lavniveauarbejde.
  • 📝 Opgave og andet Operators: Tildel værdier, plus sizeof, komma og den betingede operator, hver demonstreret med eksempeloutput.
  • 📊 Operator-præcedens: Præcedensregler bestemmer, hvilken operator i et komplekst udtryk der evalueres først.

Operatorer ind C++

Hvad er Operators?

En operatør er et symbol, der bruges til at udføre operationer på operander. En operator opererer på operander, og operationerne kan være matematiske eller logiske. Der findes forskellige typer operatorer i C++ til at udføre forskellige operationer.

Overvej følgende operation:

a = x + y;

I ovenstående udsagn er x og y operanderne, mens + er en additionsoperator. Når C++ compiler støder på ovenstående sætning, vil den tilføje x og y og gemme resultatet i variabel a.

Typer af Operatorer ind C++

Der er hovedsageligt 6 forskellige typer operatører i C++:

  1. Aritmetik Operatorer
  2. Relationel Operatorer
  3. Logisk Operatorer
  4. bitvise Operatorer
  5. Opgave Operatorer
  6. Andet Operatorer

Lad os begynde med aritmetiske operatorer, den mest almindeligt anvendte kategori.

Aritmetik Operatorer

De er de typer operatorer, der bruges til at udføre matematiske/aritmetiske operationer. De omfatter:

OperaTor Beskrivelse
+ tilføjelsesoperatør Tilføjer to operander.
- Undertractionsoperatør Undertrac2 krnd operand fra 1st operand.
* multiplikationsoperator Multiplicerer 2 operander.
/ divisionsoperator Opdeler tæller med nævner.
% modulus operator Returnerer resten efter division.
++ stigningsoperator Forøger en heltalsværdi med 1.
— dekrementeringsoperator Formindsker en heltalsværdi med 1.

For eksempel:

#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;
}

Output:

Aritmetik Operatorer

Her er et skærmbillede af koden:

Aritmetik Operatorer

Code Forklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, inden for hvilken programmets logik skal tilføjes. { markerer starten på main()-funktionens brødtekst.
  4. Erklære en heltalsvariabel a og initialisere den til 11.
  5. Erklære en heltalsvariabel b og initialisere den til 5.
  6. Erklæring af en heltalsvariabel c.
  7. Udskriver værdien af ​​operation a+b sammen med anden tekst på konsollen.
  8. Udskriver værdien af ​​operation ab sammen med anden tekst på konsollen.
  9. Udskriver værdien af ​​operation a*b sammen med anden tekst på konsollen.
  10. Udskriver værdien af ​​operation a/b sammen med anden tekst på konsollen.
  11. Udskriver værdien af ​​operation a%b sammen med anden tekst på konsollen.
  12. Udskriver værdien af ​​operation a++ sammen med anden tekst på konsollen.
  13. Udskriver værdien af ​​operation a– sammen med anden tekst på konsollen.
  14. Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
  15. Slutningen af ​​hoveddelen af ​​funktionen main().

Relationel Operatorer

Disse typer operatører udfører sammenligninger på operander. For eksempel kan du have brug for at vide, hvilken operand der er større end den anden, eller mindre end den anden. De omfatter:

OperaTor Beskrivelse
== lig med operatoren Kontrollerer lighed af to operandværdier.
!= ikke lig med operator Kontrollerer uligheden mellem to operandværdier.
> større end operatoren Kontrollerer om værdien af ​​den venstre operand er større end værdien af ​​den højre operand.
< mindre end operatoren Kontrollerer om værdien af ​​den venstre operand er mindre end værdien af ​​den højre operand.
>= større end eller lig med operatoren Kontrollerer om værdien af ​​den venstre operand er større end eller lig med værdien af ​​den højre operand.
<= mindre end eller lig med operatoren Kontrollerer om værdien af ​​den venstre operand er mindre end eller lig med værdien af ​​den højre operand.

For eksempel:

#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;
}

Output:

Relationel Operatorer

Her er et skærmbillede af koden:

Relationel Operatorer

Code Forklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, hvori programmets logik skal tilføjes.
  4. Erklære en heltalsvariabel a og initialisere den til 11.
  5. Erklære en heltalsvariabel b og initialisere den til 5.
  6. Udskrivning af tekst på konsollen med angivelse af værdierne af variable a og b.
  7. Kontrol af om a er lig med b ved hjælp af en if-beslutningssætning.
  8. Tekst, der skal udskrives på konsollen, hvis operationen a==b er sand.
  9. Ellers-delen af ​​ovenstående if-sætning, der angiver, hvad der skal gøres, hvis a==b er falsk.
  10. Tekst, der skal udskrives på konsollen, hvis operationen a==b er falsk.
  11. Kontrol af om a er mindre end b ved hjælp af en if-sætning.
  12. Tekst, der skal udskrives på konsollen, hvis handlingen er en
  13. Den anden del for når en
  14. Tekst, der skal udskrives på konsollen, hvis handlingen er en
  15. Kontrol af om a er større end b ved hjælp af en if-sætning.
  16. Tekst, der skal udskrives på konsollen, hvis operationen a>b er sand.
  17. Ellers-delen for når a > b er falsk.
  18. Tekst, der skal udskrives på konsollen, hvis operationen a>b er falsk.
  19. Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
  20. Slutningen af ​​hoveddelen af ​​funktionen main().

Logisk Operatorer

logiske operatører kombinere to eller flere begrænsninger/betingelser. Logiske operatorer supplerer også evalueringen af ​​den oprindelige betingelse, der overvejes. De omfatter:

OperaTor Beskrivelse
&& logisk AND-operator Betingelsen er sand, hvis begge operander ikke er nul.
|| logisk ELLER-operator Betingelsen er sand, hvis en af ​​operanderne er ikke-nul.
! logisk NOT-operator Den vender operandens logiske tilstand om. Hvis operanden er sand, gør !-operatoren den falsk.

For eksempel:

#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;
}

Output:

Logisk Operatorer

Her er et skærmbillede af koden:

Logisk Operatorer

Code Forklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, hvori programmets logik skal tilføjes.
  4. { markerer starten på hoveddelen af ​​funktionen main().
  5. Deklarering af 4 heltalsvariabler a, b, c og d og tildeling af forskellige værdier til dem.
  6. Brug af && (OG) operatoren i if-sætningen. Den forbinder to betingelser. Den første betingelse er falsk, og den anden er sand, så falsk&&sand er falsk; resultatet af if er falsk.
  7. Tekst, der skal udskrives på konsollen, hvis ovenstående if-sætning er sand. Dette vil ikke blive udført.
  8. Den del, der skal udføres, hvis ovenstående if-sætning er falsk.
  9. Tekst, der skal udskrives på konsollen, hvis if-sætningen er falsk. Dette vil blive udført.
  10. Brug af ||-operatoren (ELLER) i en if-sætning. Den første betingelse er falsk, og den anden er sand, så falsk||sand er sand; resultatet af if er sandt.
  11. Tekst, der skal udskrives på konsollen, hvis ovenstående if-sætning er sand. Dette vil blive udført.
  12. Den del, der skal udføres, hvis ovenstående if-sætning er falsk.
  13. Tekst, der skal udskrives på konsollen, hvis if-sætningen er falsk. Dette vil ikke blive udført.
  14. Kontrol af om værdien af ​​variabel b er 0.
  15. Tekst, der skal udskrives på konsollen, hvis ovenstående if-sætning er sand. Dette vil ikke blive udført.
  16. Den del, der skal udføres, hvis ovenstående if-sætning er falsk.
  17. Tekst, der skal udskrives på konsollen, hvis if-sætningen er falsk. Dette vil blive udført.
  18. Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
  19. Slutningen af ​​hoveddelen af ​​funktionen main().

bitvise Operatorer

Bitvise operatører udføre bitniveauoperationer på operander. Først konverteres operanderne til bitniveau, derefter udføres operationer. Når aritmetiske operationer som addition og subtraktiontracNår tion udføres på bitniveau, kan resultaterne opnås hurtigere. De omfatter:

OperaTor Beskrivelse
& (bitvis OG) Tager 2 tal (operander) og udfører derefter AND på hver bit af de to tal. Hvis begge er 1, returnerer AND 1, ellers 0.
| (bitvist ELLER) Tager 2 tal (operander) og udfører derefter ELLER på hver bit af de to tal. Returnerer 1, hvis en af ​​bittene er 1.
^ (bitvis XOR) Tager 2 tal (operander) og udfører derefter XOR på hver bit af de 2 tal. Den returnerer 1, hvis begge bits er forskellige.
<< (venstre skift) Tager to tal og flytter derefter bitsene i den første operand til venstre. Den anden operand bestemmer det samlede antal pladser, der skal flyttes.
>> (højre skift) Tager to tal og flytter derefter bitene i den første operand til højre. Den anden operand bestemmer antallet af decimaler, der skal flyttes.
~ (bitvis IKKE) Tager et tal og inverterer derefter alle dets bits.
#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;
}

Output:

bitvise Operatorer

Her er et skærmbillede af koden:

bitvise Operatorer

Code Forklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, hvori programmets logik skal tilføjes.
  4. Deklarering af en usigneret heltalsvariabel p og tildeling af en værdi på 60, ​​hvilket er 0011 1100 i binær tilstand.
  5. Deklarering af en usigneret heltalsvariabel q og tildeling af en værdi på 13, hvilket er 0000 1101 i binær tilstand.
  6. Erklære en heltalsvariabel z og initialisere den til 0.
  7. Udførelse af den bitvise & (AND) operation på variablene p og q og lagring af resultatet i variabel z.
  8. Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
  9. Udførelse af bitvis | (ELLER) operation på variable p og q og lagring af resultatet i variabel z.
  10. Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
  11. Udførelse af den bitvise ^ (XOR) operation på variable p og q og lagring af resultatet i variabel z.
  12. Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
  13. Udfører den bitvise ~ (NOT) operation på variablen p og lagrer resultatet i variablen z.
  14. Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
  15. Udførelse af venstreskiftoperationen på variabel p og lagring af resultatet i variabel z.
  16. Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
  17. Udførelse af den rigtige skiftoperation på variabel p og lagring af resultatet i variabel z.
  18. Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
  19. Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
  20. Slutningen af ​​hoveddelen af ​​funktionen main().

Opgave Operatorer

Opgaveoperatører tildel værdier til variabler. Operanden/variablen lægges til venstre side af operatoren, mens værdien lægges til højre side. Variablen og værdien skal tilhøre den samme datatype, ellers C++ compileren vil give en fejl.

For eksempel:

x = 5;

I ovenstående eksempel er x variablen/operanden, = er tildelingsoperatoren, mens 5 er værdien. Her er de populære tildelingsoperatorer i C++:

OperaTor Beskrivelse
= (simpel opgaveoperatør) Tildeler værdien til højre til variablen til venstre.
+= (Tilføj OG tildelingsoperator) Tilføjer værdien af ​​højre operand til venstre operand og tildeler derefter resultatet til variablen til venstre.
-= (Subtract OG tildelingsoperator) Undertracfinder værdien af ​​den højre operand fra den venstre operand og tildeler derefter resultatet til variablen til venstre.
*= (Multiply OG tildelingsoperator) Multiplicerer værdien af ​​venstre operand med højre operand, og tildeler derefter resultatet til variablen til venstre.
/= (Afdeling OG opgaveoperatør) Dividerer værdien af ​​venstre operand med højre operand, og tildeler derefter resultatet til variablen til venstre.

For eksempel:

#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;
}

Output:

Opgave Operatorer

Her er et skærmbillede af koden:

Opgave Operatorer

Code Forklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, hvori programmets logik skal tilføjes.
  4. { markerer starten på hoveddelen af ​​funktionen main().
  5. Erklære en heltalsvariabel x og tildele den en værdi på 5.
  6. Udskriver værdien af ​​variablen x sammen med anden tekst i konsollen. \n er et tegn på ny linje.
  7. Lægger 5 til værdien af ​​variablen x og tilordner resultatet til variablen x.
  8. Udskriver værdien af ​​variablen x på konsollen sammen med anden tekst.
  9. Undertracat udlede 5 fra værdien af ​​x og tildele resultatet til variablen x.
  10. Udskriver værdien af ​​variablen x på konsollen sammen med anden tekst.
  11. Multiplikation af værdien af ​​variablen x med 5 og tildeling af resultatet til variablen x.
  12. Udskriver værdien af ​​variablen x på konsollen sammen med anden tekst.
  13. Divider værdien af ​​variablen x med 5 og tilordner resultatet til variablen x.
  14. Udskriver værdien af ​​variablen x på konsollen sammen med anden tekst.
  15. Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
  16. Slutningen af ​​hoveddelen af ​​funktionen main().

Andet Operatorer

Andet Operatorer inkluder sizeof-operatoren, komma Operator, Betinget Operator, og Operators præcedens. Lad os diskutere de andre operatorer, der understøttes af C++:

operatørens størrelse

Denne operator bestemmer en variabels størrelse. Brug sizeof-operatoren til at bestemme størrelsen af ​​en datatype.

For eksempel:

#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;
}

Output:

operatørens størrelse

Her er et skærmbillede af koden:

operatørens størrelse

Code Forklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, hvori programmets logik skal tilføjes.
  4. Bestemmelse af størrelsen af ​​heltalsdatatypen ved hjælp af sizeof-operatoren og udskrivning af den sammen med anden tekst i konsollen.
  5. Bestemmelse af størrelsen på tegndatatypen ved hjælp af sizeof-operatoren og udskrivning af den sammen med anden tekst i konsollen.
  6. Bestemmelse af størrelsen af ​​​​float-datatypen ved hjælp af sizeof-operatoren og udskrivning af den sammen med anden tekst i konsollen.
  7. Bestemmelse af størrelsen af ​​den double-datatype ved hjælp af sizeof-operatoren og udskrivning af den sammen med anden tekst i konsollen.
  8. Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
  9. Slutningen af ​​hoveddelen af ​​funktionen main().

Komma OperaTor

komma-operator (,) udløser udførelsen af ​​en række operationer. Den udtrykker den første operand og kasserer resultatet. Derefter evaluerer den den anden operand og returnerer værdien og typen.

#include <iostream>
using namespace std;
int main() {
	int x, y;
	y = 100;
	x = (y++, y + 10, 99 + y);
	cout << x;
	return 0;
}

Output:

Komma OperaTor

Her er et skærmbillede af koden:

Komma OperaTor

Code Forklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, hvori programmets logik skal tilføjes.
  4. Erklæring af to heltalsvariable x og y.
  5. Tildeling af variablen ya-værdi på 100.
  6. Brug af kommaoperatoren. Den starter med y ved 100 og øger det derefter til 101 (y++). Derefter lægges y til 10. Til sidst lægges y, stadig ved 101, til 99, hvilket giver 200. x er nu 200.
  7. Udskriver værdien af ​​variablen x på konsollen.
  8. Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
  9. Slutningen af ​​hoveddelen af ​​funktionen main().

Betinget OperaTor

Denne operatør evaluerer en tilstand og handler ud fra resultatet af evalueringen.

Syntaks:

Condition ? Expression2 : Expression3;

Parametre:

  • Tilstanden er den tilstand, der skal vurderes.
  • Udtryk2 er det udtryk, der skal udføres, hvis betingelsen er sand.
  • Udtryk3 er det udtryk, der skal udføres, hvis betingelsen er falsk.

For eksempel:

#include <iostream>
using namespace std;
int main() {
	int a = 1, b;
	b = (a < 10) ? 2 : 5;
	cout << "value of b: " << b << endl;
	return 0;
}

Output:

Betinget OperaTor

Her er et skærmbillede af koden:

Betinget OperaTor

Code Forklaring:

  1. Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
  2. Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
  3. Kalder main()-funktionen, hvori programmets logik skal tilføjes.
  4. Erklærer to heltals variabler a og b. Variabel a er blevet tildelt en værdi på 1.
  5. Tildeling af en værdi til variabel b. Hvis variabel a er mindre end 10, vil b blive tildelt værdien 2, ellers vil b blive tildelt værdien 5.
  6. Udskriver værdien af ​​variabel b på konsollen sammen med anden tekst.
  7. Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
  8. Slutningen af ​​hoveddelen af ​​funktionen main().

Operators Forrang

En enkelt operation kan have mere end én operatør. I så fald bestemmer operatørens forrang den, der evalueres først.

Den følgende liste viser operatørernes forrang i C++, med faldende forrang fra venstre mod højre:

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

Ofte Stillede Spørgsmål

AI-kodningsassistenter kan foreslå den korrekte operator, forklare præcedens og markere fejl såsom at forveksle = med ==. De fremskynder læring, men det er fortsat vigtigt at forstå operatoradfærd selv for at skrive pålidelig kode.

Nej. AI-værktøjer kan formatere og gennemgå udtryk, men præcedens påvirker programoutputtet direkte. Kendskab til præcedens hjælper dig med at læse kode, fejlfinde logiske fejl og skrive udtryk, der opfører sig præcis som tilsigtet.

OperaMed tor-overloading kan du omdefinere, hvordan en operator fungerer for brugerdefinerede typer såsom klasser. For eksempel kan du overloade +-operatoren for at tilføje to objekter, hvilket giver brugerdefinerede typer intuitiv, indbygget-lignende adfærd.

Præfikset (++i) forøger først værdien og returnerer den derefter. Postfixet (i++) returnerer først den aktuelle værdi og derefter forøgelser. Forskellen er vigtig, når forøgelsen bruges i et større udtryk.

Operatoren = tildeler en værdi til en variabel, mens operatoren == sammenligner to værdier for lighed og returnerer sand eller falsk. Brug af = i en betingelse ved en fejltagelse er en almindelig fejl.

Opsummer dette indlæg med: