Operatoren in C++
Ein Operator ist ein Symbol, das den Compiler anweist, bestimmte mathematische oder logische Manipulationen durchzuführen. C++ ist reich an eingebauten Operatoren und bietet die folgenden Arten von Operatoren −
- Arithmetische Operatoren
- Relationale Operatoren
- Logische Operatoren
- Bitweise Operatoren
- Zuweisungsoperatoren
- Verschiedene Operatoren
In diesem Kapitel werden die arithmetischen, relationalen, logischen, bitweisen, Zuweisungs- und andere Operatoren nacheinander untersucht.
Arithmetische Operatoren
Es gibt folgende arithmetische Operatoren, die von der Sprache C++ unterstützt werden −
Angenommen, Variable A enthält 10 und Variable B enthält 20, dann −
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
+ | Addiert zwei Operanden | A + B ergibt 30 |
- | Subtrahiert den zweiten Operanden vom ersten | A - B gibt -10 |
* | Multipliziert beide Operanden | A * B ergibt 200 |
/ | Teilt Zähler durch De-Zähler | B/A ergibt 2 |
% | Moduloperator und Rest nach einer ganzzahligen Division | B % A ergibt 0 |
++ | Erhöhungsoperator, erhöht den ganzzahligen Wert um eins | A++ ergibt 11 |
-- | Dekrement-Operator, verringert den ganzzahligen Wert um eins | A-- ergibt 9 |
Relationale Operatoren
Die folgenden relationalen Operatoren werden von der Sprache C++ unterstützt
Angenommen, Variable A enthält 10 und Variable B enthält 20, dann −
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
== | Überprüft, ob die Werte zweier Operanden gleich sind oder nicht, wenn ja, dann wird die Bedingung wahr. | (A ==B) ist nicht wahr. |
!= | Überprüft, ob die Werte zweier Operanden gleich sind oder nicht, wenn die Werte nicht gleich sind, wird die Bedingung wahr. | (A !=B) ist wahr. |
> | Überprüft, ob der Wert des linken Operanden größer ist als der Wert des rechten Operanden, wenn ja, dann wird die Bedingung wahr. | (A> B) ist nicht wahr. |
< | Überprüft, ob der Wert des linken Operanden kleiner ist als der Wert des rechten Operanden, wenn ja, dann wird die Bedingung wahr. | (A |
>= | Überprüft, ob der Wert des linken Operanden größer oder gleich dem Wert des rechten Operanden ist, wenn ja, dann wird die Bedingung wahr. | (A>=B) ist nicht wahr. |
<= | Überprüft, ob der Wert des linken Operanden kleiner oder gleich dem Wert des rechten Operanden ist, wenn ja, dann wird die Bedingung wahr. | (A <=B) ist wahr. |
Logische Operatoren
Die folgenden logischen Operatoren werden von der Sprache C++ unterstützt.
Angenommen, Variable A enthält 1 und Variable B enthält 0, dann −
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
&& | Als logischer UND-Operator bezeichnet. Wenn beide Operanden nicht Null sind, wird die Bedingung wahr. | (A &&B) ist falsch. |
|| | Als logischer ODER-Operator bezeichnet. Wenn einer der beiden Operanden nicht Null ist, wird die Bedingung wahr. | (A || B) ist wahr. |
! | Als logischer NOT-Operator bezeichnet. Wird verwendet, um den logischen Zustand seines Operanden umzukehren. Wenn eine Bedingung wahr ist, wird der logische NOT-Operator falsch. | !(A &&B) ist wahr. |
Bitweise Operatoren
Der bitweise Operator bearbeitet Bits und führt Bit-für-Bit-Operationen durch. Die Wahrheitstabellen für &, | und ^ lauten wie folgt −
p | q | p &q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
Angenommen, wenn A =60; und B =13; jetzt im Binärformat werden sie wie folgt aussehen −
A =0011 1100
B =0000 1101
------------------
A&B =0000 1100
A|B =0011 1101
A^B =0011 0001
~A =1100 0011
Die von der C++-Sprache unterstützten Bitwise-Operatoren sind in der folgenden Tabelle aufgeführt. Angenommen, Variable A enthält 60 und Variable B enthält 13, dann −
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
& | Der binäre UND-Operator kopiert ein Bit in das Ergebnis, wenn es in beiden Operanden vorhanden ist. | (A &B) ergibt 12, also 0000 1100 |
| | Binärer ODER-Operator kopiert ein Bit, wenn es in einem der Operanden vorhanden ist. | (A | B) ergibt 61, also 0011 1101 |
^ | Binärer XOR-Operator kopiert das Bit, wenn es in einem Operanden gesetzt ist, aber nicht in beiden. | (A ^ B) ergibt 49, also 0011 0001 |
~ | Binary Ones Complement Operator ist unär und hat den Effekt, dass Bits „umgedreht“ werden. | (~A ) ergibt -61, was aufgrund einer vorzeichenbehafteten Binärzahl 1100 0011 im Zweierkomplement ist. |
<< | Binärer Linksverschiebungsoperator. Der Wert des linken Operanden wird um die vom rechten Operanden angegebene Anzahl von Bits nach links verschoben. | Eine <<2 ergibt 240, was 1111 0000 entspricht |
>> | Binärer Rechtsverschiebungsoperator. Der Wert des linken Operanden wird um die vom rechten Operanden angegebene Anzahl von Bits nach rechts verschoben. | A>> 2 ergibt 15, also 0000 1111 |
Zuweisungsoperatoren
Es gibt folgende Zuweisungsoperatoren, die von der Sprache C++ unterstützt werden −
Beispiele anzeigen
Operator | Beschreibung | Beispiel |
---|---|---|
= | Einfacher Zuweisungsoperator, Weist Werte von rechten Operanden zu linken Operanden zu. | C =A + B weist C den Wert von A + B zu |
+= | Und-Zuweisungsoperator hinzufügen, Er fügt den rechten Operanden zum linken Operanden hinzu und weist das Ergebnis dem linken Operanden zu. | C +=A ist äquivalent zu C =C + A |
-= | Und-Zuweisungsoperator subtrahieren, er subtrahiert den rechten Operanden vom linken Operanden und weist das Ergebnis dem linken Operanden zu. | C -=A ist äquivalent zu C =C - A |
*= | Multiplizieren UND Zuweisungsoperator, multipliziert den rechten Operanden mit dem linken Operanden und weist das Ergebnis dem linken Operanden zu. | C *=A ist äquivalent zu C =C * A |
/= | Divide AND Zuweisungsoperator, Er dividiert den linken Operanden durch den rechten Operanden und weist das Ergebnis dem linken Operanden zu. | C /=A ist äquivalent zu C =C / A |
%= | Modulus UND Zuweisungsoperator, nimmt Modulus unter Verwendung von zwei Operanden und weist das Ergebnis dem linken Operanden zu. | C %=A entspricht C =C % A |
<<= | Linksverschiebung UND Zuweisungsoperator. | C <<=2 ist dasselbe wie C =C <<2 |
>>= | Rechtsverschiebung UND Zuweisungsoperator. | C>>=2 ist dasselbe wie C =C>> 2 |
&= | Bitweiser UND-Zuweisungsoperator. | C &=2 ist dasselbe wie C =C &2 |
^= | Bitweises exklusives ODER und Zuweisungsoperator. | C ^=2 ist dasselbe wie C =C ^ 2 |
|= | Bitweises inklusives ODER und Zuweisungsoperator. | C |=2 ist dasselbe wie C =C | 2 |
Verschiedene Operatoren
Die folgende Tabelle listet einige andere Operatoren auf, die C++ unterstützt.
Sr.No | Operator &Beschreibung |
---|---|
1 | Größe von sizeof-Operator gibt die Größe einer Variablen zurück. Beispiel:sizeof(a), wobei „a“ eine Ganzzahl ist und 4 zurückgibt. |
2 | Zustand ? X:Y Bedingter Operator (?). Wenn die Bedingung wahr ist, wird der Wert X zurückgegeben, andernfalls der Wert Y. |
3 | , Der Kommaoperator bewirkt, dass eine Folge von Operationen ausgeführt wird. Der Wert des gesamten Komma-Ausdrucks ist der Wert des letzten Ausdrucks der kommagetrennten Liste. |
4 | . (Punkt) und -> (Pfeil) Elementoperatoren werden verwendet, um auf einzelne Elemente von Klassen, Strukturen und Vereinigungen zu verweisen. |
5 | Besetzung Casting-Operatoren konvertieren einen Datentyp in einen anderen. Beispielsweise würde int(2.2000) 2 zurückgeben. |
6 | & Zeigeroperator &gibt die Adresse einer Variablen zurück. Zum Beispiel &a; gibt die aktuelle Adresse der Variablen an. |
7 | * Zeigeroperator * ist ein Zeiger auf eine Variable. Zum Beispiel *var; zeigt auf eine Variable var. |
Vorrang von Operatoren in C++
Die Operatorpriorität bestimmt die Gruppierung von Begriffen in einem Ausdruck. Dies wirkt sich darauf aus, wie ein Ausdruck ausgewertet wird. Bestimmte Operatoren haben Vorrang vor anderen; Beispielsweise hat der Multiplikationsoperator Vorrang vor dem Additionsoperator −
Zum Beispiel x =7 + 3 * 2; hier wird x 13 zugewiesen, nicht 20, da der Operator * einen höheren Vorrang als + hat, also wird er zuerst mit 3*2 multipliziert und dann zu 7 addiert.
Dabei erscheinen die Operatoren mit der höchsten Priorität ganz oben in der Tabelle, die mit der niedrigsten Priorität ganz unten. Innerhalb eines Ausdrucks werden Operatoren mit höherer Priorität zuerst ausgewertet.
Beispiele anzeigen
Kategorie | Operator | Assoziativität |
---|---|---|
Postfix | () [] -> . ++ - - | Von links nach rechts |
Unär | + - ! ~ ++ - - (Typ)* &Größe von | Rechts nach links |
Multiplikativ | * / % | Von links nach rechts |
Zusatz | + - | Von links nach rechts |
Umschalten | <<>> | Von links nach rechts |
Relational | <<=>>= | Von links nach rechts |
Gleichheit | ==!= | Von links nach rechts |
Bitweises UND | & | Von links nach rechts |
Bitweises XOR | ^ | Von links nach rechts |
Bitweises ODER | | | Von links nach rechts |
Logisches UND | && | Von links nach rechts |
Logisches ODER | || | Von links nach rechts |
Bedingt | ?: | Rechts nach links |
Zuweisung | =+=-=*=/=%=>>=<<=&=^=|= | Rechts nach links |
Komma | , | Von links nach rechts |
C Sprache