C Operator-Rangfolge & Assoziativität verstehen: Klare Anleitung
Operator-Rangfolge (Precedence)
Die Rangfolge bestimmt, welcher Operator zuerst ausgeführt wird, wenn ein Ausdruck mehrere Operatoren enthält.
Beispiel: int x = 5 - 17 * 6;
In C hat * höhere Rangfolge als - und =. Also wird 17 * 6 zuerst evaluiert. Dann - (höher als =).
Operator-Rangfolge & Assoziativität Tabelle (höher → niedriger)
| Operator | Bedeutung | Assoziativität |
|---|---|---|
()[]->. | Funktionsaufruf Array-Elementzugriff Indirekte Mitgliedswahl Direkte Mitgliedswahl | Links nach rechts |
!~+-++--&*sizeof(type) | Logische Negation Bitweises Komplement (1er) Unäres Plus Unäres Minus Inkrement Dekrement Dereferenzierung (Adresse) Zeigerreferenz Größe eines Objekts Typecast (Konversion) | Rechts nach links |
*/% | Multiplikation Division Rest | Links nach rechts |
+- | Binäres Plus (Addition) Binäres Minus (Subtraktion) | Links nach rechts |
<<>> | Links-Shift Rechts-Shift | Links nach rechts |
<<=>>= | Kleiner als Kleiner oder gleich Größer als Größer oder gleich | Links nach rechts |
==!= | Gleich Ungleich | Links nach rechts |
& | Bitweises UND | Links nach rechts |
^ | Bitweises exklusives ODER | Links nach rechts |
| | Bitweises ODER | Links nach rechts |
&& | Logisches UND | Links nach rechts |
|| | Logisches ODER | Links nach rechts |
?: | Bedingungsoperator | Rechts nach links |
=*=/=%=+=-=&=^=|=<<=>>= | Einfache Zuweisung Produkt zuweisen Quotient zuweisen Rest zuweisen Summe zuweisen Differenz zuweisen Bitweises UND zuweisen Bitweises XOR zuweisen Bitweises ODER zuweisen Links-Shift zuweisen Rechts-Shift zuweisen | Rechts nach links |
, | Ausdruckstrenner | Links nach rechts |
Assoziativität von Operatoren
Assoziativität bestimmt Auswertungsrichtung. Beispiel: b = a; – Wert von a wird b zugewiesen, nicht umgekehrt, da = rechts-nach-links assoziativ ist.
Bei zwei Operatoren gleicher Rangfolge bestimmt Assoziativität die Ausführungsrichtung.
Beispiel: 1 == 2 != 3
== und != haben gleiche Rangfolge, Assoziativität links-nach-rechts. Also wird 1 == 2 zuerst ausgeführt.
Ausdruck entspricht: (1 == 2) != 3
Hinweis: Bei mehreren Operatoren klammern Sie mit () für Lesbarkeit.
Inhaltsverzeichnis
C Sprache
- C# Methoden: Definieren, Aufrufen, Rekursion & Parameterübergabe
- C# Operator-Rangfolge und Assoziativität meistern: Ein praktischer Leitfaden
- C Variablen, Konstanten und Literale: Ein vollständiger Leitfaden
- C# Ternärer Operator: Knapper Leitfaden zu bedingten Ausdrücken
- C++ Templates: Generische Programmierung meistern
- Die C for-Schleife meistern: Syntax, Mechanik und praktische Beispiele
- C# Operatoren: Umfassender Leitfaden zu allen Operatorarten
- Dynamische Speicherallokation in C: malloc() verstehen mit praktischen Beispielen
- C# Serialisierung & Deserialisierung: Ein praktisches Beispiel
- C-Programmstruktur verstehen: Einsteiger-Guide