C Vorrang und Assoziativität von Operatoren: Definition und Beispiele

In diesem Tutorial lernen Sie anhand von Beispielen die Priorität und Assoziativität von Operatoren kennen.

Vorrang der Betreiber

Die Priorität von Operatoren bestimmt, welcher Operator zuerst ausgeführt wird, wenn ein Ausdruck mehr als einen Operator enthält.

Betrachten wir ein Beispiel:

 int x = 5 - 17* 6;

In C ist die Priorität von *höher als -und =. Daher 17 * 6wird zuerst ausgewertet. Dann wird der betreffende Ausdruck -bewertet, da die Priorität von -höher ist als die von =.

Hier ist eine Tabelle mit Vorrang der Operatoren von höher nach niedriger. Die Eigenschaft der Assoziativität wird in Kürze erörtert.

Rangfolge und Assoziativitätstabelle für Operatoren

Operator Bedeutung des Operators Assoziativität
()
()
->
.
Funktionsaufruf
Array-Elementreferenz
Indirekte Elementauswahl
Direkte Elementauswahl
Links nach rechts
!
~
+
-
++
-
&
*
sizeof
(Typ)
Logische Negation
Bitweises (1) Komplement
Unär plus
Unär minus
Inkrement
Dekrement
Dereferenz (Adresse)
Zeigerreferenz
Gibt die Größe eines Objekts zurück.
Typecast (Konvertierung)
Rechts nach links
*
/
%
Multiplizieren
Dividieren
Rest
Links nach rechts
+
-
Binäres Plus (Addition)
Binäres Minus (Subtraktion)
Links nach rechts
<<
>>
Linksverschiebung
Rechtsverschiebung
Links nach rechts
<
<=
>
> =
Kleiner als
kleiner als oder gleich
größer
als größer als oder gleich
Links nach rechts
==
! =
Gleich
ungleich un
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
?: Bedingter Operator Rechts nach links
=
* =
/ =
% =
+ =
- =
& =
=
| =
<< =
>> =
Einfache
Zuordnung Produkt
zuordnen Quotient
zuweisen Rest
zuweisen Summe
zuordnen Differenz Differenz
zuweisen Bitweise zuweisen UND
Bitweise zuweisen XOR
Bitweise zuweisen ODER
Linksverschiebung
zuweisen Rechtsverschiebung zuweisen
Rechts nach links
, Trennzeichen für Ausdrücke Links nach rechts

Assoziativität der Operatoren

Die Assoziativität von Operatoren bestimmt die Richtung, in der ein Ausdruck ausgewertet wird. Beispielsweise,

 b = a;

Hier wird der Wert von a b zugewiesen und nicht umgekehrt. Dies liegt daran, dass die Assoziativität des =Operators von rechts nach links erfolgt.

Wenn zwei Operatoren mit derselben Priorität (Priorität) vorhanden sind, bestimmt die Assoziativität die Richtung, in der sie ausgeführt werden.

Betrachten wir ein Beispiel:

 1 == 2! = 3

Hier haben Operatoren ==und !=die gleiche Priorität. Und ihre Assoziativität ist von links nach rechts. Daher 1 == 2wird zuerst ausgeführt.

Der obige Ausdruck entspricht:

 (1 == 2)! = 3

Hinweis: Wenn eine Anweisung mehrere Operatoren hat, können Sie Klammern verwenden (), um den Code besser lesbar zu machen.

Interessante Beiträge...