Operators in C++Typer med exempel

⚡ Smart sammanfattning

Operators in C++ är symboler som utför operationer på operander, allt från aritmetiska och jämförande till logiska, bitvisa och tilldelningsåtgärder. Denna resurs förklarar varje operatorkategori med körbara exempelprogram, utdata och de prioritetsregler som avgör utvärderingsordningen.

  • Aritmetik Operators: Utför matematiska operationer som addition, substantialiseringtraction, multiplikation, division, modul, inkrement och dekrement på numeriska operander.
  • ⚖️ Relations Operators: Jämför två operander med hjälp av likhets- och ordningskontroller, och returnera ett sant eller falskt resultat.
  • 🔗 logisk Operators: Kombinera eller invänd villkor med OCH, ELLER och INTE för att styra programbeslut.
  • 🔢 bitvis Operators: Operate direkt på enskilda bitar med hjälp av AND-, OR-, XOR-, NOT- och shift-operationer för snabbare lågnivåarbete.
  • 📝 Uppgift och annat Operators: Tilldela värden, plus sizeof, komma och den villkorliga operatorn, vart och ett demonstrerat med exempelutdata.
  • 📊 Operator-prioritet: Prioritetsregler avgör vilken operator i ett komplext uttryck som utvärderas först.

Operators in C++

Vad är Operators?

En operatör är en symbol som används för att utföra operationer på operander. En operator opererar på operander, och operationerna kan vara matematiska eller logiska. Det finns olika typer av operatorer i C++ för att utföra olika operationer.

Tänk på följande operation:

a = x + y;

I ovanstående sats är x och y operanderna medan + är en additionsoperator. När C++ kompilatorn stöter på ovanstående sats, kommer den att lägga till x och y och lagra resultatet i variabel a.

Typer av Operators in C++

Det finns främst 6 olika typer av operatörer i C++:

  1. Aritmetik Operatorer
  2. Relations Operatorer
  3. logisk Operatorer
  4. bitvis Operatorer
  5. Uppdrag Operatorer
  6. Övrigt Operatorer

Låt oss börja med aritmetiska operatorer, den vanligaste kategorin.

Aritmetik Operatorer

De är de typer av operatorer som används för att utföra matematiska/aritmetiska operationer. De inkluderar:

Operator BESKRIVNING
+ tilläggsoperatör Lägger till två operander.
- Undertractionsoperator Subtracalla 2nd operand från 1st operand.
* multiplikationsoperator Multiplicerar 2 operander.
/ divisionsoperator Delar täljaren med nämnaren.
% moduloperator Returnerar resten efter division.
++ inkrementoperator Ökar ett heltalsvärde med 1.
— minskningsoperator Minskar ett heltalsvärde med 1.

Till exempel:

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

Produktion:

Aritmetik Operatorer

Här är en skärmdump av koden:

Aritmetik Operatorer

Code Förklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar main()-funktionen i vilken programmets logik ska läggas till. { markerar början på main()-funktionens brödtext.
  4. Deklarera en heltalsvariabel a och initiera den till 11.
  5. Deklarera en heltalsvariabel b och initiera den till 5.
  6. Deklarera en heltalsvariabel c.
  7. Skriver ut värdet för operation a+b tillsammans med annan text i konsolen.
  8. Skriver ut värdet för operation ab tillsammans med annan text i konsolen.
  9. Skriver ut värdet för operation a*b tillsammans med annan text i konsolen.
  10. Skriver ut värdet för operation a/b tillsammans med annan text i konsolen.
  11. Skriver ut värdet för operation a%b tillsammans med annan text i konsolen.
  12. Skriver ut värdet för operation a++ tillsammans med annan text i konsolen.
  13. Skriver ut värdet för operation a– tillsammans med annan text i konsolen.
  14. Funktionen main() bör returnera ett värde om programmet fungerar bra.
  15. Slutet på huvuddelen av funktionen main().

Relations Operatorer

Dessa typer av operatörer utför jämförelser på operander. Till exempel kan du behöva veta vilken operand som är större än den andra, eller mindre än den andra. De inkluderar:

Operator BESKRIVNING
== lika med operatorn Kontrollerar likheten mellan två operandvärden.
!= inte lika med operator Kontrollerar olikheten mellan två operandvärden.
> större än-operatorn Kontrollerar om värdet på den vänstra operanden är större än värdet på den högra operanden.
< mindre än operatorn Kontrollerar om värdet på den vänstra operanden är mindre än värdet på den högra operanden.
>= större än eller lika med operatorn Kontrollerar om värdet på den vänstra operanden är större än eller lika med värdet på den högra operanden.
<= mindre än eller lika med operatorn Kontrollerar om värdet på den vänstra operanden är mindre än eller lika med värdet på den högra operanden.

Till exempel:

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

Produktion:

Relations Operatorer

Här är en skärmdump av koden:

Relations Operatorer

Code Förklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar funktionen main() där programmets logik ska läggas till.
  4. Deklarera en heltalsvariabel a och initiera den till 11.
  5. Deklarera en heltalsvariabel b och initiera den till 5.
  6. Skriver ut lite text på konsolen som anger värdena för variablerna a och b.
  7. Kontrollera om a är lika med b med hjälp av ett if-beslutsuttryck.
  8. Text som ska skrivas ut på konsolen om operationen a==b är sann.
  9. Den andra delen av ovanstående if-sats, som anger vad som ska göras om a==b är falskt.
  10. Text som ska skrivas ut på konsolen om operationen a==b är falsk.
  11. Kontrollera om a är mindre än b med hjälp av ett if-uttryck.
  12. Text som ska skrivas ut på konsolen om operationen är en
  13. Den andra delen för när en
  14. Text som ska skrivas ut på konsolen om operationen är
  15. Kontrollera om a är större än b med hjälp av ett if-uttryck.
  16. Text som ska skrivas ut på konsolen om operationen a>b är sann.
  17. Annars-delen för när a > b är falskt.
  18. Text som ska skrivas ut på konsolen om operationen a>b är falsk.
  19. Funktionen main() bör returnera ett värde om programmet fungerar bra.
  20. Slutet på huvuddelen av funktionen main().

logisk Operatorer

Ocuco-landskapet logiska operatörer kombinera två eller flera begränsningar/villkor. Logiska operatorer kompletterar också utvärderingen av det ursprungliga villkoret som beaktas. De inkluderar:

Operator BESKRIVNING
&& logisk OCH-operator Villkoret är sant om båda operanderna inte är noll.
|| logisk ELLER-operator Villkoret är sant om en av operanderna inte är noll.
! logisk NOT-operator Den vänder operandens logiska tillstånd. Om operanden är sann gör operatorn ! den falsk.

Till exempel:

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

Produktion:

logisk Operatorer

Här är en skärmdump av koden:

logisk Operatorer

Code Förklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar funktionen main() där programmets logik ska läggas till.
  4. { markerar början på huvuddelen av funktionen main().
  5. Deklarera fyra heltalsvariabler a, b, c och d och tilldela dem olika värden.
  6. Använder operatorn && (OCH) i if-satsen. Den sammankopplar två villkor. Det första villkoret är falskt och det andra är sant, så falskt&&sant är falskt; resultatet av if är falskt.
  7. Text som ska skrivas ut på konsolen om ovanstående if-sats är sann. Detta kommer inte att köras.
  8. Den del som ska köras om ovanstående if-sats är falsk.
  9. Text att skriva ut på konsolen om if-satsen är falsk. Detta kommer att utföras.
  10. Använda operatorn || (ELLER) i en if-sats. Det första villkoret är falskt och det andra är sant, så falskt||sant är sant; resultatet av if är sant.
  11. Text som ska skrivas ut på konsolen om ovanstående if-sats är sann. Detta kommer att köras.
  12. Den del som ska köras om ovanstående if-sats är falsk.
  13. Text att skriva ut på konsolen om if-satsen är falsk. Detta kommer inte att utföras.
  14. Kontrollerar om värdet på variabel b är 0.
  15. Text som ska skrivas ut på konsolen om ovanstående if-sats är sann. Detta kommer inte att köras.
  16. Den del som ska köras om ovanstående if-sats är falsk.
  17. Text att skriva ut på konsolen om if-satsen är falsk. Detta kommer att utföras.
  18. Funktionen main() bör returnera ett värde om programmet fungerar bra.
  19. Slutet på huvuddelen av funktionen main().

bitvis Operatorer

Bitvisa operatörer utföra bitnivåoperationer på operander. Först konverteras operanderna till bitnivå, sedan utförs operationer. När aritmetiska operationer som addition och substantiveringtracOm åtgärder utförs på bitnivå kan resultat uppnås snabbare. De inkluderar:

Operator BESKRIVNING
& (bitvis OCH) Tar 2 tal (operander) och utför sedan OCH på varje bit av de två talen. Om båda är 1 returnerar OCH 1, annars 0.
| (bitvis ELLER) Tar 2 tal (operander) och utför sedan ELLER på varje bit av de två talen. Returnerar 1 om en av bitarna är 1.
^ (bitvis XOR) Tar 2 tal (operander) och utför sedan XOR på varje bit av de 2 talen. Returnerar 1 om båda bitarna är olika.
<< (vänster skift) Tar två tal och vänsterförskjuter sedan bitarna i den första operanden. Den andra operanden bestämmer det totala antalet platser som ska förskjutas.
>> (högerväxling) Tar två tal och flyttar sedan bitarna i den första operanden åt höger. Den andra operanden bestämmer antalet decimaler som ska flyttas.
~ (bitvis INTE) Tar ett tal och inverterar sedan alla dess bitar.
#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;
}

Produktion:

bitvis Operatorer

Här är en skärmdump av koden:

bitvis Operatorer

Code Förklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar funktionen main() där programmets logik ska läggas till.
  4. Deklarera en oteckenförtecknad heltalsvariabel p och tilldela den värdet 60, vilket är 0011 1100 i binärt tal.
  5. Deklarera en oteckenförtecknad heltalsvariabel q och tilldela den värdet 13, vilket är 0000 1101 i binär kod.
  6. Deklarera en heltalsvariabel z och initiera den till 0.
  7. Utföra den bitvisa & (AND) operationen på variablerna p och q och lagra resultatet i variabel z.
  8. Skriver ut resultatet av ovanstående operation på konsolen tillsammans med annan text.
  9. Utföra bitvis | (OR) operation på variablerna p och q och lagring av resultatet i variabel z.
  10. Skriver ut resultatet av ovanstående operation på konsolen tillsammans med annan text.
  11. Utföra den bitvisa ^ (XOR) operationen på variablerna p och q och lagra resultatet i variabel z.
  12. Skriver ut resultatet av ovanstående operation på konsolen tillsammans med annan text.
  13. Utför den bitvisa ~-operationen (NOT) på variabeln p och lagrar resultatet i variabeln z.
  14. Skriver ut resultatet av ovanstående operation på konsolen tillsammans med annan text.
  15. Utföra vänsterväxlingsoperationen på variabel p och lagra resultatet i variabel z.
  16. Skriver ut resultatet av ovanstående operation på konsolen tillsammans med annan text.
  17. Att utföra rätt skiftoperation på variabel p och lagra resultatet i variabel z.
  18. Skriver ut resultatet av ovanstående operation på konsolen tillsammans med annan text.
  19. Funktionen main() bör returnera ett värde om programmet fungerar bra.
  20. Slutet på huvuddelen av funktionen main().

Uppdrag Operatorer

Uppdragsoperatörer tilldela värden till variabler. Operanden/variabeln läggs till på vänster sida av operatorn medan värdet läggs till på höger sida. Variabeln och värdet måste tillhöra samma datatyp, annars C++ kompilatorn kommer att generera ett fel.

Till exempel:

x = 5;

I exemplet ovan är x variabeln/operanden, = är tilldelningsoperatorn, medan 5 är värdet. Här är de populära tilldelningsoperatorerna i C++:

Operator BESKRIVNING
= (enkel tilldelningsoperator) Tilldelar variabeln till vänster värdet till höger.
+= (Lägg till OCH tilldelningsoperator) Lägger till värdet av den högra operanden till den vänstra operanden och tilldelar sedan resultatet till variabeln till vänster.
-= (Subtract OCH tilldelningsoperator) Subtractar värdet på den högra operanden från den vänstra operanden och tilldelar sedan resultatet till variabeln till vänster.
*= (Multiplicera OCH tilldelningsoperator) Multiplicerar värdet på den vänstra operanden med den högra operanden och tilldelar sedan resultatet till variabeln till vänster.
/= (Division OCH uppdragsoperatör) Delar värdet på den vänstra operanden med den högra operanden och tilldelar sedan resultatet till variabeln till vänster.

Till exempel:

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

Produktion:

Uppdrag Operatorer

Här är en skärmdump av koden:

Uppdrag Operatorer

Code Förklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar funktionen main() där programmets logik ska läggas till.
  4. { markerar början på huvuddelen av funktionen main().
  5. Deklarera en heltalsvariabel x och tilldela den värdet 5.
  6. Skriver ut värdet på variabeln x tillsammans med annan text i konsolen. \n är ett tecken för ny rad.
  7. Att addera 5 till värdet på variabel x och tilldela resultatet till variabel x.
  8. Skriver ut värdet på variabeln x i konsolen tillsammans med annan text.
  9. Subtracräkna ut 5 från värdet på x och tilldela resultatet till variabeln x.
  10. Skriver ut värdet på variabeln x i konsolen tillsammans med annan text.
  11. Multiplicera värdet av variabeln x med 5 och tilldela resultatet till variabeln x.
  12. Skriver ut värdet på variabeln x i konsolen tillsammans med annan text.
  13. Att dividera värdet av variabeln x med 5 och tilldela resultatet till variabeln x.
  14. Skriver ut värdet på variabeln x i konsolen tillsammans med annan text.
  15. Funktionen main() bör returnera ett värde om programmet fungerar bra.
  16. Slutet på huvuddelen av funktionen main().

Övrigt Operatorer

Övrigt Operatorer inkludera sizeof-operatorn, komma Operator, Villkorlig Operator, och Operators Precedens. Låt oss diskutera de andra operatorerna som stöds av C++:

operatörens storlek

Denna operator bestämmer en variabels storlek. Använd operatorn sizeof för att bestämma storleken på en datatyp.

Till exempel:

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

Produktion:

operatörens storlek

Här är en skärmdump av koden:

operatörens storlek

Code Förklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar funktionen main() där programmets logik ska läggas till.
  4. Bestämma storleken på heltalsdatatypen med hjälp av operatorn sizeof och skriva ut den tillsammans med annan text i konsolen.
  5. Bestämma storleken på teckendatatypen med hjälp av operatorn sizeof och skriva ut den tillsammans med annan text i konsolen.
  6. Bestämma storleken på flyttalsdatatypen med hjälp av operatorn sizeof och skriva ut den tillsammans med annan text i konsolen.
  7. Bestämma storleken på datatypen double med hjälp av operatorn sizeof och skriva ut den tillsammans med annan text i konsolen.
  8. Funktionen main() bör returnera ett värde om programmet fungerar bra.
  9. Slutet på huvuddelen av funktionen main().

Kommatecken Operator

Ocuco-landskapet kommaoperator (,) utlöser utförandet av en sekvens av operationer. Den uttrycker den första operanden och ignorerar resultatet. Därefter utvärderar den den andra operanden och returnerar värdet och typen.

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

Produktion:

Kommatecken Operator

Här är en skärmdump av koden:

Kommatecken Operator

Code Förklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar funktionen main() där programmets logik ska läggas till.
  4. Deklarera två heltalsvariabler x och y.
  5. Tilldela variabeln ya-värdet 100.
  6. Använder kommaoperatorn. Den börjar med y vid 100 och ökar sedan till 101 (y++). Därefter läggs y till 10. Slutligen läggs y, fortfarande vid 101, till 99, vilket ger 200. x är nu 200.
  7. Skriver ut värdet på variabeln x på konsolen.
  8. Funktionen main() bör returnera ett värde om programmet fungerar bra.
  9. Slutet på huvuddelen av funktionen main().

Villkorlig Operator

Denna operatör utvärderar ett tillstånd och agerar utifrån resultatet av utvärderingen.

Syntax:

Condition ? Expression2 : Expression3;

Parametrar:

  • Villkoret är det tillstånd som ska utvärderas.
  • Uttryck2 är uttrycket som ska köras om villkoret är sant.
  • Uttryck3 är uttrycket som ska köras om villkoret är falskt.

Till exempel:

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

Produktion:

Villkorlig Operator

Här är en skärmdump av koden:

Villkorlig Operator

Code Förklaring:

  1. Inklusive iostream-huvudfilen i vår kod. Det gör att vi kan läsa från och skriva till konsolen.
  2. Inkluderar std-namnområdet för att använda dess klasser och funktioner utan att anropa det.
  3. Anropar funktionen main() där programmets logik ska läggas till.
  4. Deklarerar två heltalsvariabler a och b. Variabel a har tilldelats värdet 1.
  5. Tilldela ett värde till variabel b. Om variabel a är mindre än 10, kommer b att tilldelas värdet 2, annars kommer b att tilldelas värdet 5.
  6. Skriver ut värdet på variabel b i konsolen tillsammans med annan text.
  7. Funktionen main() bör returnera ett värde om programmet fungerar bra.
  8. Slutet på huvuddelen av funktionen main().

Operators företräde

En enskild operation kan ha mer än en operatör. I så fall bestämmer operatörens företräde den som utvärderas först.

Följande lista visar företräde för operatörer i C++, med minskande prioritet från vänster till höger:

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

Vanliga frågor

AI-kodningsassistenter kan föreslå rätt operator, förklara prioritet och flagga misstag som att förväxla = med ==. De påskyndar inlärningen, men att förstå operatorernas beteende själv är fortfarande avgörande för att skriva tillförlitlig kod.

Nej. AI-verktyg kan formatera och granska uttryck, men prioritet påverkar programutdata direkt. Att känna till prioritet hjälper dig att läsa kod, felsöka logikfel och skriva uttryck som beter sig exakt som avsett.

OperaMed tor-överbelastning kan du omdefiniera hur en operator fungerar för användardefinierade typer som klasser. Du kan till exempel överbelasta operatorn + för att lägga till två objekt, vilket ger anpassade typer ett intuitivt, inbyggt beteende.

Prefixet (++i) ökar värdet först och returnerar det sedan. Postfixet (i++) returnerar det aktuella värdet först och sedan ökar det. Skillnaden spelar roll när ökningen används inuti ett större uttryck.

Operatorn = tilldelar ett värde till en variabel, medan operatorn == jämför två värden för likhet och returnerar sant eller falskt. Att använda = inuti ett villkor av misstag är ett vanligt fel.

Sammanfatta detta inlägg med: