c operators types
Eine vollständige Studie der Operatoren in C ++ mit Beispielen:
In diesem Intensive C ++ Trainingsreihe, In unseren früheren Tutorials haben wir die verschiedenen Konzepte in C ++ wie Variablen, Speicherklassen, Typqualifizierer usw. kennengelernt. Wir haben auch erfahren, wie wir diese Variablen ändern können.
Um diese Änderungen vorzunehmen, müssen wir Operationen an diesen Variablen und Konstanten ausführen und um diese Operationen auszuführen, verwenden wir Operatoren.
Operatoren sind Symbole, die auf Variablen oder andere Entitäten wirken, die als Operanden bezeichnet werden, und mathematische oder logische Operationen ausführen, um ihre Werte zu ändern und entsprechende Ergebnisse zu erzielen.
Was du lernen wirst:
Operatoren in C ++
Operatoren bilden die Basis jeder Programmiersprache. Ohne Operatoren können wir die Entitäten von Programmiersprachen nicht modifizieren oder manipulieren und dadurch nicht die gewünschten Ergebnisse erzielen. C ++ ist sehr reich an integrierten Operatoren, die wir in diesem Tutorial ausführlich behandeln werden.
In C ++ sind die meisten Operatoren binäre Operatoren, d. H. Diese Operatoren erfordern zwei Operanden, um eine Operation auszuführen. Nur wenige Operatoren wie der ++ (Inkrement) -Operator sind unäre Operatoren, was bedeutet, dass sie nur mit einem Operanden arbeiten.
In C ++ gibt es auch einen ternären Operator namens Conditional Operator, der drei Operanden akzeptiert. Wir werden dies im späteren Teil des Tutorials ausführlich erfahren.
Arten von Operatoren in C ++
Operatoren in C ++ werden wie folgt klassifiziert:
Lassen Sie uns jeden Typ von C ++ - Operator im Detail untersuchen!
Rechenzeichen
Arithmetische Operatoren werden zum Ausführen grundlegender mathematischer Operationen an Operanden verwendet.
C ++ unterstützt die folgenden arithmetischen Operationen:
Operator | Binär / unär | Beschreibung |
---|---|---|
- - | Einstellig | Dekrementierungsoperator - Verringert den Wert des Operanden um 1 |
+ | Binär | Addition von zwei Operanden |
- - | Binär | Subtraktion von zwei Operanden |
* * | Binär | Multiplikation zweier Operanden |
/. | Binär | Aufteilung zweier Operanden |
%. | Binär | Moduloperator - das Ergebnis ist der Rest der Division |
++ | Einstellig | Inkrementoperator - Erhöht den Wert des Operanden um 1 |
Das folgende Beispiel zeigt die ersten fünf arithmetischen Operatoren in C ++
#include #include using namespace std; int main() { int op1=3,op2=4; float op3=10.1,op4=5.4; cout<<'Operands are op1 = '< Wir können dies anhand des folgenden Beispiels besser verstehen. #include #include using namespace std; int main() { int x=4,y; y = ++x; cout<<'PreIncrement:Value of x = '<Logische Operatoren Logische Operatoren werden zum Auswerten einer Kombination von Bedingungen / Einschränkungen verwendet, um einen resultierenden Wert zu erhalten. Das Ergebnis der Auswertung eines Booleschen Ausdrucks ist ein Boolescher Wert, der entweder wahr oder falsch ist.
C ++ unterstützt die folgenden logischen Operatoren:
Operator Beschreibung 7 L-> R. <<
>> Bitweise nach links verschieben
Bitweise nach rechts verschieben && Logisches UND: Gibt true zurück, wenn beide Bedingungen wahr sind, andernfalls false. || Logisches ODER: Gibt true zurück, wenn eine der Bedingungen erfüllt ist. Gibt false zurück, wenn beide Bedingungen false sind. ! Logisch NICHT: negiert die Bedingung.
C ++ verwendet eine Kurzschlussmethode, um logische Ausdrücke auszuwerten. In diesem Fall muss C ++ nur den ersten Ausdruck / Operanden des logischen Ausdrucks auswerten, um das Ergebnis bereitzustellen. Zum Beispiel, Für den logischen AND (&&) -Operator wertet C ++ nur den ersten Ausdruck aus. Wenn es falsch ist, ist das Ergebnis auch dann falsch, wenn die zweite Bedingung wahr ist.
In ähnlicher Weise wertet es für logisches ODER (||) nur den ersten Ausdruck aus. Wenn der erste Ausdruck wahr ist, ist das Ergebnis wahr, sodass der zweite Ausdruck nicht ausgewertet werden muss.
Im Folgenden finden Sie ein Beispiel für die Verwendung logischer Operatoren.
#include #include using namespace std; int main() int a=10, b=8,c=12,d=14; if(!(a==0)) cout<<'a is not zero'< Ausgabe:
a ist nicht Null
Logisches UND ist wahr
Logisches ODER ist wahr
Im obigen Programm haben wir alle drei logischen Operatoren verwendet, um Ausdrücke auszuwerten und die Ergebnisse auszudrucken.
Vergleichsoperatoren
Relationale oder Vergleichsoperatoren werden verwendet, um zwei Operanden zu vergleichen. Das Ergebnis der Bewertung ist entweder wahr oder falsch.
C ++ unterstützt die folgenden Vergleichsoperatoren:
Operator Beschreibung !ERROR! unerwarteter Operator '=' Wertet aus, ob zwei Operanden gleich sind. Gibt true zurück, wenn gleich else false zurückgibt. ! = (ungleich) Ergänzt den Operator 'gleich'. Gibt true zurück, wenn Operanden nicht gleich sind. Sonst falsch. <(less than) Gibt true zurück, wenn der erste Operand kleiner als der zweite ist. Sonst falsch. <=(less than equal to) Gibt true zurück, wenn der erste Operand kleiner oder gleich dem zweiten Operanden ist. Sonst falsch. > (größer als) Gibt true zurück, wenn der erste Operand größer als der zweite ist. Sonst falsch. > = (größer als gleich) Gibt true zurück, wenn der erste Operand größer als der zweite ist. Sonst falsch.
Im folgenden Beispielprogramm finden Sie Informationen zu den Vergleichsoperatoren.
#include #include using namespace std; int main() { int a=10, b=8,c=12,d=14; if(a==b) cout<<'a is equal to b'< Ausgabe:
a ist nicht gleich b
c ist nicht gleich d
(a + b) kleiner als / gleich (c + d)
(a-b) größer als / gleich (d-c)
Im obigen Programm sehen wir die Verwendung von Vergleichsoperatoren und die Art und Weise, wie sie die bereitgestellten Ausdrücke bewerten.
Beachten Sie, dass wir in den bedingten Anweisungen nicht nur Werte, sondern auch Variablen und Ausdrücke bereitstellen können.
Bitweise Operatoren
Bitweise Operatoren in C ++ arbeiten mit Bits der bereitgestellten Operanden. Bitweise Operatoren werden nur auf ganzzahlige Typen wie Ganzzahl, Zeichen usw. angewendet und nicht auf Datentypen wie float, double usw.
Im Folgenden sind die von C ++ unterstützten bitweisen Operatoren aufgeführt:
Betreiber Beschreibung & (Binär UND) Führt eine UND-Operation an den Bits von Operand 1 und Operand 2 aus. | (Binär ODER) Führt eine ODER-Verknüpfung für die Bits von Operand 1 und Operand 2 aus. ^ (Binäres XOR) Führt eine XOR-Operation an den Bits von Operand 1 und Operand 2 aus. ~ (Binäre Ergänzung) Nimmt einen Operanden und invertiert seine Bits. <<( Binary left shift operator) Verschiebt die Bits des ersten Operanden nach links auf eine Anzahl von Bits, die vom zweiten Operanden angegeben werden. >> (Binärer Rechtsschieber) Verschiebt Bits des ersten Operanden nach rechts zu einer Anzahl von Stellen, die durch den zweiten Operanden angegeben werden.
Diese bitweisen Operatoren arbeiten bitweise mit Operanden. Die Wahrheitstabellen für AND-, OR- und XOR-Operationen sind unten angegeben.
Betrachten Sie a und b als zwei Bits, an denen AND-, OR- und XOR-Operationen ausgeführt werden sollen.
Die Wahrheitstabellen dafür sind wie folgt:
zu b a & b a | b a ^ b 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0
Nehmen wir ein Beispiel, um bitweise Operationen zu verstehen.
Sei a = 8 und b = 4
Die binäre Darstellung von a und b ist wie folgt:
a = 8 1000
a = 4 0100
a & b 0000 = 0
a | b 1100 = 12
a ^ b 1100 = 12
Im obigen Beispiel sehen wir, dass das bitweise UND von 8 und 4 0 ist. Das bitweise ODER von 8 und 4 ist 12 und das bitweise XOR von 8 und 4 ist ebenfalls 12.
Auf diese Weise werden bitweise Operationen von den bitweisen Operatoren ausgeführt.
Ein Beispiel zur Demonstration der bitweisen Operatoren.
#include #include using namespace std; int main() int a=8,b=4,c; c = a&b; cout<<'Result of & : '< Ausgabe:
Ergebnis von &: 0
Ergebnis von | : 12
Ergebnis von ^: 12
Ergebnis von<< by 2 bits: 32
Ergebnis von >> um 2 Bits: 1
Ergebnis von ~: -4
Im obigen Programm haben wir die Verwendung von bitweisen Operatoren demonstriert und auch die Ausgabe jeder Operation gedruckt.
Zuweisungsoperatoren
Der Zuweisungsoperator '=' wird verwendet, um einer Variablen einen Wert zuzuweisen. Die LHS des Zuweisungsoperators ist eine Variable und RHS ist der Wert, der der Variablen zugewiesen werden soll. Der Wert auf der rechten Seite muss vom selben Typ sein wie der der Variablen auf der linken Seite.
Beachten Sie den Unterschied zwischen den Operatoren '=' und '=='. Ersteres ist der Zuweisungsoperator und letzteres ist der Gleichheitsoperator.
Der Zuweisungsvorgang erfolgt von rechts nach links. Neben dem Zuweisungsoperator '=' gibt es andere Variationen des Zuweisungsoperators, die als 'zusammengesetzte Zuweisungsoperatoren' bezeichnet werden. Diese Operatoren führen zusätzlich zur Zuweisung eine Operation aus.
Die folgende Tabelle enthält eine Beschreibung dieser Zuweisungsoperatoren.
Operator Beschreibung = Weist dem LHS-Operanden den Wert des RHS-Operanden zu + = Fügt dem LHS-Operanden den RHS-Operanden hinzu und weist das Ergebnis dem LHS-Operanden zu. - = Subtrahiert den RHS-Operanden vom LHS-Operanden und weist das Ergebnis dem LHS-Operanden zu * = multipliziert den RHS-Operanden mit dem LHS-Operanden und weist das Ergebnis dem LHS-Operanden zu / = teilt den RHS-Operanden in den LHS-Operanden und weist das Ergebnis dem LHS-Operanden zu
Wie in der obigen Tabelle gezeigt, entspricht x + = y x = x + y, wenn x und y Operanden sind.
Ähnlich,
x - = y entspricht x = x-y.
x * = y entspricht x = x * y.
x / = y entspricht x = x / y.
Das folgende Programmierbeispiel zeigt diese Zuweisungsoperatoren.
#include #include using namespace std; int main() { int x,y; cout<>y; x = y; cout<<'
Value of x = '< Ausgabe:
Geben Sie die Eingabevariable y ein: 4
Wert von x = 4
a + = b: 8
c - = b: 3
a * = b: 40
b / = c: 1

Im obigen Beispiel haben wir sowohl Zuweisungsoperatoren als auch zusammengesetzte Zuweisungsoperatoren demonstriert.
Hinweis: Wir können auch die anderen binären Operatoren wie%, kombinieren.<>, &, |, ^ usw. in zusammengesetzte Zuweisungsanweisungen zusätzlich zu den bereits demonstrierten.
Andere Betreiber
Bisher haben wir alle wichtigen Operatoren in C ++ untersucht. Es gibt einige weitere C ++ - Operatoren, die unsere Aufmerksamkeit benötigen.
Diese Operatoren umfassen:
pl sql für Anfänger mit Beispielen
(i) Größe des Betreibers
sizeof ist ein unärer Operator, der in C und C ++ häufig verwendet wird. Sizeof gibt die Größe seines Operanden zurück. Der Rückgabewert ist normalerweise ein vorzeichenloser Integraltyp, der mit 'size_t' bezeichnet wird.
Der Operator Sizeof hat viele Verwendungsmöglichkeiten in C- und C ++ - Sprachen. Es kann verwendet werden, um die Größe der Variablen, Arrays oder Ausdrücke herauszufinden und sogar die Speicherblöcke zuzuweisen.
(ii) Bedingter ternärer Betreiber
Der bedingte Operator in C ++ kann als Ersatz für die if-else-Anweisung verwendet werden.
Die allgemeine Syntax für den bedingten Operator lautet:
Bedingung? Ausdruck1: Ausdruck2;
Wenn die Bedingung erfüllt ist, wird Ausdruck 1 ausgewertet. Wenn die Bedingung falsch ist, wird expression2 ausgewertet.
Bitte beachten Sie, dass Ausdruck1 und Ausdruck2 vom gleichen Datentyp sein müssen, um mögliche Fehler zu vermeiden.
Empfohlene Lektüre => Ternärer Operator in C #
(iii) Komma-Operator
Ein Kommaoperator, der als Token ',' dargestellt wird, kann sowohl als Operator als auch als Trennzeichen verwendet werden.
Als Operator wird ein Komma verwendet, wenn mehr als ein Ausdruck ausgewertet werden muss. LHS wird nur der Ausdruck ganz rechts zugewiesen.
Zum Beispiel,Betrachten Sie den folgenden Ausdruck.
x = (y = 4, y + 1);
In diesem Ausdruck haben wir zwei Ausdrücke auf der rechten Seite, die durch ein Komma getrennt sind. Hier fungiert das Komma als Operator. Zunächst wird der Ausdruck y = 4 ausgewertet. Dann wird der nächste Ausdruck y + 1 unter Verwendung des Ergebnisses des ersten Ausdrucks ausgewertet, d. H. Y = 4. Somit ist der Wert von y + 1 5 und dieser Wert wird x zugewiesen.
Als Trennzeichen kann ein Komma überall verwendet werden, um Definitionen, Parameterlisten usw. zu trennen.
(iv) Mitgliedszugriffsbetreiber
Es gibt zwei Operatoren, mit denen auf die einzelnen Mitglieder von Klassen, Strukturen oder Gewerkschaften in C ++ zugegriffen werden kann. Dies sind der Punktoperator (.) Und der Pfeiloperator (->). Wir werden diese Operatoren im Detail lernen, wenn wir die objektorientierte Programmierung in C ++ lernen.
Das folgende Beispiel zeigt die Verwendung von sizeof, Comma und Conditional Operator.
#include #include using namespace std; int main() { int x,y; x = (y=3,y+4); cout<<'Value of x = '< Ausgabe:
Wert von x = 7
Die Variable x ist größer als 5
Größe von (x): 4 Größe von (y): 4
Der Screenshot dafür ist unten angegeben.

Wie im obigen Programm gezeigt, haben wir zuerst zwei Variablen, die durch ein Komma deklariert und getrennt sind. (Komma als Trennzeichen). Als nächstes haben wir einen Kommaoperator mit zwei Ausdrücken. Wie wir aus der Ausgabe sehen können, wird der Wert des Ausdrucks ganz rechts der Variablen x zugewiesen. Als nächstes demonstrieren wir den bedingten Operator, um zu bewerten, ob x kleiner als 5 ist.
Schließlich demonstrieren wir die Verwendung des Operators sizeof. Hier verwenden wir den Operator sizeof, um die Größe der Variablen x und y zu erhalten. Da beide ganzzahlige Variablen sind, beträgt die zurückgegebene Größe 4 Byte.
(v) Vorrang und Assoziativität des Bedieners
Wir haben bereits fast alle C ++ - Operatoren gesehen und wissen, dass sie in Ausdrücken verwendet werden können, um bestimmte Operationen auszuführen. Aber die Ausdrücke, die wir in Beispielen gesehen haben, sind einfach und unkompliziert. Abhängig von unseren Anforderungen werden Ausdrücke jedoch immer komplexer.
Solche komplexen Ausdrücke haben mehr als einen Operator und viele Operanden. In einer solchen Situation müssen wir zuerst bewerten, welcher Operator bewertet werden soll.
Zum BeispielBetrachten Sie den folgenden Ausdruck.
x = 4 + 5/3;
Hier haben wir + und / Operatoren und wir müssen entscheiden, welcher Ausdruck zuerst ausgewertet wird. In mathematischen Begriffen wissen wir, dass die Division vor der Addition durchgeführt wird. Somit wird der Ausdruck x = 4 + (5/3) = 5.
Wenn der Compiler jedoch mit einer solchen Situation konfrontiert ist, benötigen wir auch einen ähnlichen Mechanismus, um die Reihenfolge der Operationen zu bestimmen, damit er den Ausdruck richtig auswerten kann.
Diese Reihenfolge, in der die Operatoren in einem zusammengesetzten Ausdruck ausgewertet werden, wird als 'Vorrang' des Operators bezeichnet. C ++ hat für alle Operatoren die Priorität definiert, und die Operatoren mit der höheren Priorität werden zuerst ausgewertet.
Was passiert, wenn zwei Operatoren nebeneinander in einem Ausdruck mit derselben Priorität stehen? Hier kommt die Assoziativität eines Operators ins Spiel.
Die Assoziativität teilt dem Compiler mit, ob ein Ausdruck in der Reihenfolge von links nach rechts oder von rechts nach links ausgewertet werden soll. Auf diese Weise können wir mithilfe der Priorität und Assoziativität eines Operators einen Ausdruck effektiv bewerten und das gewünschte Ergebnis erzielen.
C ++ bietet eine Tabelle, die aus der Priorität und Assoziativität verschiedener verwendeter Operatoren besteht.
Diese Tabelle ist unten angegeben.
Vorrang / Assoziativität Operator Beschreibung 1 Keine :: ::
:: :: Scope Resolution Operator
(einstellig)
(binär) 2 L-> R. ()
()
()
{}
Art()
Art{}
()
.
->
++
––
Typid
const_cast
dynamic_cast
reinterpret_cast
static_cast Klammern
Funktionsaufruf
Initialisierung
Einheitliche Initialisierung (C ++ 11)
Funktionale Besetzung
Funktionale Besetzung (C ++ 11)
Array-Index
Mitgliederzugriff vom Objekt aus
Mitgliederzugriff vom Objekt ptr
Nachinkrementierung
Nachdekrementierung
Informationen zum Laufzeit-Typ
Const wegwerfen
Typüberprüfter Cast zur Laufzeit
Umwandlung eines Typs in einen anderen Typübergreifende Umwandlung mit Kompilierungszeit 3 R-> L. +
- -
++
––
!
~
(Art)
Größe von
&
* *
Neu
Neu()
löschen
löschen() Unary mehr
Unäres Minus
Vorinkrementieren
Pre-Dekrement
Logisch NICHT
Bitweise NICHT
Besetzung im C-Stil
Größe in Bytes
Adresse von
Dereferenzierung
Dynamische Speicherzuordnung
Dynamische Array-Zuordnung
Dynamisches Löschen des Speichers
Dynamisches Löschen von Arrays 4 L-> R. -> *
. * Elementzeigerauswahl
Elementobjektauswahl 5 L-> R. * *
/.
%. Multiplikation
Teilung
Modul 6 L-> R. +
- - Zusatz
Subtraktion 8 L-> R. <
<=
>
> = Vergleich weniger als
Vergleich kleiner oder gleich
Vergleich größer als
Vergleich größer oder gleich 9 L-> R. !ERROR! unzulässiges Zeichen '!' Gleichberechtigung
Ungleichheit 10 L-> R. & Bitweises UND 11 L-> R. ^ Bitweises XOR 12 L-> R. | Bitweises ODER 13 L-> R. && Logisches UND 14 L-> R. || Logisches ODER 15 R-> L. ?:
=
* =
/ =
% =
+ =
- =
<<=
>> =
& =
| =
^ = Bedingt (siehe Hinweis unten)
Zuordnung
Multiplikationszuordnung
Abteilungszuordnung
Modulzuordnung
Zusatzzuordnung
Subtraktionszuordnung
Bitweise Verschiebung nach links
Bitweise Verschiebung nach rechts
Bitweise UND-Zuordnung
Bitweise ODER-Zuordnung
Bitweise XOR-Zuordnung 16 R-> L. werfen Ausdruck werfen 17 L-> R. , Komma-Operator
Anmerkungen:
- Vorrangstufe 1 ist die höchste Vorrangstufe und Stufe 17 die niedrigste. Operatoren mit einer höheren Priorität werden zuerst bewertet.
- L-> R bedeutet Assoziativität von links nach rechts.
- R-> L bedeutet Assoziativität von rechts nach links.
Fazit
Hier geht es um die Operatoren in C ++.
Wir haben fast alle Betreiber besprochen. Einige spezifische Operatoren, die in der obigen Prioritätstabelle enthalten sind und die wir nicht besprochen haben, werden gemäß den Themen behandelt, die wir in unseren kommenden Tutorials behandeln.
=> Hier finden Sie Informationen zur vollständigen Liste der C ++ - Tutorials
Literatur-Empfehlungen
- Beispiele für arithmetische und boolesche Unix-Shell-Skriptoperatoren
- Python-Operatoren
- Neue / gelöschte Operatoren in C ++ mit Beispielen
- Python-Datentypen
- Unix-bedingte Anweisungen: Wenn dann andere und relationale Operatoren
- Python DateTime Tutorial mit Beispielen
- HTML Injection Tutorial: Typen & Prävention mit Beispielen
- Befehl in Unix mit Beispielen ausschneiden