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.

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++:
- Aritmetik Operatorer
- Relationel Operatorer
- Logisk Operatorer
- bitvise Operatorer
- Opgave Operatorer
- 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:
Her er et skærmbillede af koden:
Code Forklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, inden for hvilken programmets logik skal tilføjes. { markerer starten på main()-funktionens brødtekst.
- Erklære en heltalsvariabel a og initialisere den til 11.
- Erklære en heltalsvariabel b og initialisere den til 5.
- Erklæring af en heltalsvariabel c.
- Udskriver værdien af operation a+b sammen med anden tekst på konsollen.
- Udskriver værdien af operation ab sammen med anden tekst på konsollen.
- Udskriver værdien af operation a*b sammen med anden tekst på konsollen.
- Udskriver værdien af operation a/b sammen med anden tekst på konsollen.
- Udskriver værdien af operation a%b sammen med anden tekst på konsollen.
- Udskriver værdien af operation a++ sammen med anden tekst på konsollen.
- Udskriver værdien af operation a– sammen med anden tekst på konsollen.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- 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:
Her er et skærmbillede af koden:
Code Forklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, hvori programmets logik skal tilføjes.
- Erklære en heltalsvariabel a og initialisere den til 11.
- Erklære en heltalsvariabel b og initialisere den til 5.
- Udskrivning af tekst på konsollen med angivelse af værdierne af variable a og b.
- Kontrol af om a er lig med b ved hjælp af en if-beslutningssætning.
- Tekst, der skal udskrives på konsollen, hvis operationen a==b er sand.
- Ellers-delen af ovenstående if-sætning, der angiver, hvad der skal gøres, hvis a==b er falsk.
- Tekst, der skal udskrives på konsollen, hvis operationen a==b er falsk.
- Kontrol af om a er mindre end b ved hjælp af en if-sætning.
- Tekst, der skal udskrives på konsollen, hvis handlingen er en
- Den anden del for når en
- Tekst, der skal udskrives på konsollen, hvis handlingen er en
- Kontrol af om a er større end b ved hjælp af en if-sætning.
- Tekst, der skal udskrives på konsollen, hvis operationen a>b er sand.
- Ellers-delen for når a > b er falsk.
- Tekst, der skal udskrives på konsollen, hvis operationen a>b er falsk.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- 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:
Her er et skærmbillede af koden:
Code Forklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, hvori programmets logik skal tilføjes.
- { markerer starten på hoveddelen af funktionen main().
- Deklarering af 4 heltalsvariabler a, b, c og d og tildeling af forskellige værdier til dem.
- 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.
- Tekst, der skal udskrives på konsollen, hvis ovenstående if-sætning er sand. Dette vil ikke blive udført.
- Den del, der skal udføres, hvis ovenstående if-sætning er falsk.
- Tekst, der skal udskrives på konsollen, hvis if-sætningen er falsk. Dette vil blive udført.
- 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.
- Tekst, der skal udskrives på konsollen, hvis ovenstående if-sætning er sand. Dette vil blive udført.
- Den del, der skal udføres, hvis ovenstående if-sætning er falsk.
- Tekst, der skal udskrives på konsollen, hvis if-sætningen er falsk. Dette vil ikke blive udført.
- Kontrol af om værdien af variabel b er 0.
- Tekst, der skal udskrives på konsollen, hvis ovenstående if-sætning er sand. Dette vil ikke blive udført.
- Den del, der skal udføres, hvis ovenstående if-sætning er falsk.
- Tekst, der skal udskrives på konsollen, hvis if-sætningen er falsk. Dette vil blive udført.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- 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:
Her er et skærmbillede af koden:
Code Forklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, hvori programmets logik skal tilføjes.
- Deklarering af en usigneret heltalsvariabel p og tildeling af en værdi på 60, hvilket er 0011 1100 i binær tilstand.
- Deklarering af en usigneret heltalsvariabel q og tildeling af en værdi på 13, hvilket er 0000 1101 i binær tilstand.
- Erklære en heltalsvariabel z og initialisere den til 0.
- Udførelse af den bitvise & (AND) operation på variablene p og q og lagring af resultatet i variabel z.
- Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
- Udførelse af bitvis | (ELLER) operation på variable p og q og lagring af resultatet i variabel z.
- Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
- Udførelse af den bitvise ^ (XOR) operation på variable p og q og lagring af resultatet i variabel z.
- Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
- Udfører den bitvise ~ (NOT) operation på variablen p og lagrer resultatet i variablen z.
- Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
- Udførelse af venstreskiftoperationen på variabel p og lagring af resultatet i variabel z.
- Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
- Udførelse af den rigtige skiftoperation på variabel p og lagring af resultatet i variabel z.
- Udskrivning af resultatet af ovenstående handling på konsollen sammen med anden tekst.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- 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:
Her er et skærmbillede af koden:
Code Forklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, hvori programmets logik skal tilføjes.
- { markerer starten på hoveddelen af funktionen main().
- Erklære en heltalsvariabel x og tildele den en værdi på 5.
- Udskriver værdien af variablen x sammen med anden tekst i konsollen. \n er et tegn på ny linje.
- Lægger 5 til værdien af variablen x og tilordner resultatet til variablen x.
- Udskriver værdien af variablen x på konsollen sammen med anden tekst.
- Undertracat udlede 5 fra værdien af x og tildele resultatet til variablen x.
- Udskriver værdien af variablen x på konsollen sammen med anden tekst.
- Multiplikation af værdien af variablen x med 5 og tildeling af resultatet til variablen x.
- Udskriver værdien af variablen x på konsollen sammen med anden tekst.
- Divider værdien af variablen x med 5 og tilordner resultatet til variablen x.
- Udskriver værdien af variablen x på konsollen sammen med anden tekst.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- 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:
Her er et skærmbillede af koden:
Code Forklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, hvori programmets logik skal tilføjes.
- Bestemmelse af størrelsen af heltalsdatatypen ved hjælp af sizeof-operatoren og udskrivning af den sammen med anden tekst i konsollen.
- Bestemmelse af størrelsen på tegndatatypen ved hjælp af sizeof-operatoren og udskrivning af den sammen med anden tekst i konsollen.
- Bestemmelse af størrelsen af float-datatypen ved hjælp af sizeof-operatoren og udskrivning af den sammen med anden tekst i konsollen.
- Bestemmelse af størrelsen af den double-datatype ved hjælp af sizeof-operatoren og udskrivning af den sammen med anden tekst i konsollen.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- 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:
Her er et skærmbillede af koden:
Code Forklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, hvori programmets logik skal tilføjes.
- Erklæring af to heltalsvariable x og y.
- Tildeling af variablen ya-værdi på 100.
- 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.
- Udskriver værdien af variablen x på konsollen.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- 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:
Her er et skærmbillede af koden:
Code Forklaring:
- Inklusive iostream header-filen i vores kode. Det giver os mulighed for at læse fra og skrive til konsollen.
- Inkluderer std-navnerummet for at bruge dets klasser og funktioner uden at kalde det.
- Kalder main()-funktionen, hvori programmets logik skal tilføjes.
- Erklærer to heltals variabler a og b. Variabel a er blevet tildelt en værdi på 1.
- 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.
- Udskriver værdien af variabel b på konsollen sammen med anden tekst.
- Main()-funktionen skal returnere en værdi, hvis programmet kører fint.
- 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:
(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=













