Dieser Artikel bietet ein umfassendes Tutorial, um Sie beim Erlernen der Assoziativität und des Bedieners in C zu unterstützen.
Vorrang in c
Vorrang beschreibt die Sequenz, in der mehrere Operatoren bei der Bewertung der Ausdrücke bewertet werden. Zum Beispiel, wenn ein Ausdruck sowohl Additions- als auch Multiplikationsoperatoren hat, die zuerst bewertet werden sollten? Die Antwort ist einfach, C befolgt bestimmte Regeln, um solche Unklarheiten zu lösen, die allgemein bekannt als Vorrang. In c, Vorrang wird in 17 Stufen eingeteilt, die von unartigen Operatoren bis zum ternären bedingten Operator reichen. Die meisten verwendeten Operatoren wie arithmetische Operatoren, relationale Operatoren, logische Operatoren und Bitgewise -Operatoren folgen dem C -Standard Vorrang Protokoll.
Vorrang Regeln bestimmen, welche Betreiber bei der Bewertung der Ausdrücke eine höhere Priorität haben als andere. Verschiedene Arten von Operatoren in der C -Programmiersprache haben unterschiedliche Grade von Vorrang. Zum Beispiel haben unäre Betreiber eine größere Priorität als binäre Betreiber. Das Folgende ist eine Liste von Operatoren, die in aufsteigender Reihenfolge sortiert sind Vorrang:
Operator | Bedeutung des Bedieners | Assoziativität |
() [] -> . | Funktioneller Anruf Array -Elementreferenz Indirekte Mitgliedsauswahl Auswahl der direkten Mitglieder | Links nach rechts |
! ~ + - ++ - & * Größe von (Typ) | Logische Negation Bitweise (1) ergänzt Unary Plus Unary Minus Zuwachs Abnahme Dereferenz (Adresse) Zeigerreferenz Gibt die Größe eines Objekts zurück Typecast (Konvertierung) | Rechts nach links |
* / % | Multiplizieren Teilen Rest | Links nach rechts |
+ - | Binary Plus (Addition) Binär minus (Subtraktion) | Links nach rechts |
<< >> | Linksverschiebung Rechte Shifttaste | Links nach rechts |
< <= > > = | Weniger als Weniger als oder gleich Größer als Größer als oder gleich | Links nach rechts |
== != | Gleich Nicht gleichzusetzen mit | Links nach rechts |
& | Bitweise und | Links nach rechts |
^ | Bitweise exklusiv oder | Links nach rechts |
| | Bitweise oder | Links nach rechts |
&& | Logisch und | Links nach rechts |
|| | Logisch oder | Links nach rechts |
?: | Bedingender Bediener | Rechts nach links |
= *= /= %= += -= & = ^= | = <<= >> = | Einfache Aufgabe Produkt zuweisen Quotienten zuweisen Rest zuweisen Summe zuweisen Differenz zuweisen Bitgewise zuweisen und Bitwise XOR zuweisen Bitgewise or zuweisen oder Linke Verschiebung zuweisen Rechte Verschiebung zuweisen | Rechts nach links |
, | Ausdrückeabscheider | Links nach rechts |
Diese Regeln leiten den Compiler, wie Ausdrücke mit mehreren Operatoren im selben Ausdruck bewertet werden können. Der Multiplikationsoperator beispielsweise hat eine größere Vorrang Vorrang Regeln. Daher bewertet der Compiler zunächst den Ausdruck B * c, bevor der Ergebnis A zum Ergebnis hinzufügt.
Schauen wir uns ein Beispiel von an Vorrang durch Code.
#enthaltenDie vier Variablen A, B, C und D werden im obigen Code deklariert, und ihre Anfangswerte sind 43, 11, 16 und 31 entsprechend. Dann wendet es eine Vielzahl von Arithmetik- und Zuordnungsoperatoren auf diese Variablen in einem Ausdruck an. Der Ausdruck erhöht den Wert von A durch die Verwendung des Vorstufemperators ++ A, multipliziert das Ergebnis durch den Post-Decrement-Operator B- und fügt dann das Ergebnis der Dividierung C durch den vorab dekrementierten Wert von D hinzu. (Verwenden des Vorabschaltoperators -d). Das variable Ergebnis wird dann verwendet, um das Gesamtergebnis dieses Ausdrucks zu halten.
Ausgang
Assoziativität in c
Assoziativität bezieht sich auf die Reihenfolge, in der die Operatoren während eines Ausdrucks mit gleichem Vorrang bewertet werden. Links nach rechts und rechts nach links Assoziativität sind die beiden Formen der Assoziativität in c. Wenn zwei Operatoren dasselbe haben Vorrang, Sie werden von links nach rechts gemäß dem Konzept von links nach rechts bewertet Assoziativität. Wenn jedoch die gleiche Vorrangung beobachtet wird, werden die Operatoren nach rechts nach links von rechts nach links bewertet Assoziativität.
Zum Beispiel hat der ++ Increment-Operator Recht nach links Assoziativität, was bedeutet das Inkrement Operator wird nach der Variablen bewertet. Während die logische und Operator hat einen links nach rechts Assoziativität, Dies bedeutet, dass der Bediener von links nach rechts bewertet wird.
#enthaltenDie drei Variablen A, B und C werden in diesem Code deklariert und werden auf 6, 3 bzw. 2 initialisiert. Anschließend wendet es in einem Ausdruck Multiplikations- und Abteilungsoperationen auf diese Variablen an. Multiplikation und Abteilung werden basierend auf ihrem von links nach rechts in C eingestuft Assoziativität Da haben sie das gleiche Vorrangniveau. Dies zeigt an, dass der Abteilungsvorgang an erster Stelle steht, gefolgt von dem Multiplikationsvorgang bei der Bewertung des Ausdrucks A * b / c.
Ausgang
Abschluss
Vorrang Und Assoziativität sind entscheidende Konzepte in der C -Programmierung, die dazu beitragen. Betreiber mit den höchsten Vorrang Niveau werden zuerst bewertet und Assoziativität Regeln ermitteln die Reihenfolge, wenn mehrere Operatoren mit gleichem Vorrang verwendet werden. Verständnis Vorrang Und Assoziativität ist bei der Gestaltung komplexer Programme von entscheidender Bedeutung und erstellt sauberere und effizientere Code mit weniger Fehlern.