C++ Operatoren: Typen, Nutzung & Best Practices
- Arithmetische Operatoren
- Relationale Operatoren
- Logische Operatoren
- Bitweise Operatoren
- Zuweisungsoperatoren
- Sonstige Operatoren
Arithmetische Operatoren
Angenommen A = 10, B = 20:
| Operator | Beschreibung | Beispiel |
|---|---|---|
+ | Addiert zwei Operanden | A + B = 30 |
- | Subtrahiert zweiten vom ersten | A - B = -10 |
* | Multipliziert beide | A * B = 200 |
/ | Dividiert Zähler durch Nenner | B / A = 2 |
% | Modulo (Rest bei Integer-Division) | B % A = 0 |
++ | Inkrement (Erhöht um 1) | A++ = 11 |
-- | Dekrement (Verringert um 1) | A-- = 9 |
Relationale Operatoren
Angenommen A = 10, B = 20:
| Operator | Beschreibung | Beispiel |
|---|---|---|
== | Gleichheit prüfen | (A == B) false |
!= | Ungleichheit prüfen | (A != B) true |
> | Größer als | (A > B) false |
< | Kleiner als | (A < B) true |
>= | Größer oder gleich | (A >= B) false |
<= | Kleiner oder gleich | (A <= B) true |
Logische Operatoren
Angenommen A = 1 (true), B = 0 (false):
| Operator | Beschreibung | Beispiel |
|---|---|---|
&& | Logisches UND – beide Operanden non-zero → true | (A && B) false |
|| | Logisches ODER – mindestens einer non-zero → true | (A || B) true |
! | Logisches NICHT – kehrt logischen Zustand um | !(A && B) true |
Bitweise Operatoren
Arbeiten auf Bit-Ebene. Wahrheitstafeln für &, |, ^:
| 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 |
Beispiel: A = 60 (0011 1100), B = 13 (0000 1101)
A & B = 0000 1100 (12)
A | B = 0011 1101 (61)
A ^ B = 0011 0001 (49)
~A = 1100 0011 (-61 in 2er-Komplement)
A << 2 = 1111 0000 (240)
A >> 2 = 0000 1111 (15)
| Operator | Beschreibung | Beispiel |
|---|---|---|
& | Binäres UND – Bit kopieren, falls in beiden Operanden gesetzt | (A & B) = 12 |
| | Binäres ODER – Bit kopieren, falls in einem Operanden gesetzt | (A | B) = 61 |
^ | Binäres XOR – Bit kopieren, falls in genau einem Operanden gesetzt | (A ^ B) = 49 |
~ | Einerkomplement (Bits flippen) | (~A) = -61 |
<< | Links-Shift | A << 2 = 240 |
>> | Rechts-Shift | A >> 2 = 15 |
Zuweisungsoperatoren
| Operator | Beschreibung | Beispiel |
|---|---|---|
= | Einfache Zuweisung | C = A + B |
+= | Addieren & zuweisen | C += A ≡ C = C + A |
-= | Subtrahieren & zuweisen | C -= A ≡ C = C - A |
*= | Multiplizieren & zuweisen | C *= A ≡ C = C * A |
/= | Dividieren & zuweisen | C /= A ≡ C = C / A |
%= | Modulo & zuweisen | C %= A ≡ C = C % A |
<<= | Links-Shift & zuweisen | C <<= 2 ≡ C = C << 2 |
>>= | Rechts-Shift & zuweisen | C >>= 2 ≡ C = C >> 2 |
&= | Bitwise AND & zuweisen | C &= 2 ≡ C = C & 2 |
^= | Bitwise XOR & zuweisen | C ^= 2 ≡ C = C ^ 2 |
|= | Bitwise OR & zuweisen | C |= 2 ≡ C = C | 2 |
Sonstige Operatoren
| Nr. | Operator & Beschreibung | |
|---|---|---|
| 1 | sizeof – Größe einer Variable (z. B. sizeof(int) = 4) | |
| 2 | Condition ? X : Y – Bedingter Operator (Ternär) | |
| 3 | , – Komma-Operator (Sequenz, Wert = letzter Ausdruck) | |
| 4 | . und -> – Member-Zugriff (Klassen/Structs/Unions) | |
| 5 | Cast – Typumwandlung (z. B. int(2.2000) = 2) | |
| 6 | & – Adressoperator (&a = Adresse von a) | |
| 7 | * | Pointer-Dereferenzierung (*ptr = Wert an Adresse) |
Operator-Rangfolge (Precedence)
Bestimmt Gruppierung in Ausdrücken. Höhere Priorität = frühere Auswertung. Z. B. * vor +: x = 7 + 3 * 2 → 13 (nicht 20).
| Kategorie | Operator | Assoziativität |
|---|---|---|
| Postfix | () [] -> . ++ -- | Links nach rechts |
| Unär | + - ! ~ ++ -- (type)* & sizeof | Rechts nach links |
| Multiplikativ | * / % | Links nach rechts |
| Additiv | + - | Links nach rechts |
| Shift | << >> | Links nach rechts |
| Relational | < <= > >= | Links nach rechts |
| Gleichheit | == != | Links nach rechts |
| Bitwise AND | & | Links nach rechts |
| Bitwise XOR | ^ | Links nach rechts |
| Bitwise OR | | | Links nach rechts |
| Logical AND | && | Links nach rechts |
| Logical OR | || | Links nach rechts |
| Bedingt | ?: | Rechts nach links |
| Zuweisung | = += -= *= /= %= >>= <<= &= ^= |= | Rechts nach links |
| Komma | , | Links nach rechts |
C Sprache
- C# Operatoren – Umfassender Leitfaden zu Operatoren in C#
- C++-Datentypen verstehen: Grundlagen, Modifizierer und Best Practices
- C++-Operatoren meistern: Ein vollständiger Leitfaden mit praktischen Beispielen
- C++-Kommentare: Best Practices für lesbaren, wartbaren Code
- C++ Klassentemplates meistern: Ein praktischer Leitfaden
- C Programmierungsoperatoren meistern: Ein umfassender Leitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Java Operatoren meistern: Typen, Syntax und praktische Beispiele
- C++ Operatoren erklärt: Typen, Beispiele und Beispielprogramme
- Umfassender Leitfaden zu C-Operatoren: Typen, Funktionen & Beispiele