Anmerkungen zu den Grundrechenarten in C
Prioritäten
Wir haben uns (besonders in einigen Übungsfragen) schon damit beschäftigt, wie man die Interpretation eines Ausdrucks aus den Syntaxdiagrammen entnehmen kann. Beispielsweise folgt aus diesen, daß in »3+12/4« der zweite Operator in einem Operanden enthalten ist (»3+(12/4)«).
Um solche Interpretationen nicht immer wieder aus den Syntaxdiagrammen ablesen zu müssen, ordnet man Operatoren Prioritäten zu, die man dann aus Tabellen ablesen oder auswendig lernen kann.
Die bisher vorgestellten Operatoren haben Prioritäten gemäß der folgenden Tabelle: Ein weiter oben stehender Operator hat eine höhere Priorität.
- Die Priorität der bisher behandelten Operatoren
() Eingeklammerter Ausdruck
+ - Unaere vorangestellte Operatoren (Vorzeichen)
* / "Punktrechnung": Multiplikation, Division
+ - "Strichrechnung": Addition, Subtraktion
Man sagt ja auch: „Punktrechnung geht vor Strichrechnung.“ – „Punktrechnung“ umfaßt die Operatoren mit Punkten (die Multiplikation ‹ · › und die Division ‹ : ›) und „Strichrechnung“ die Operatoren mit Strichen (die Addition ‹ + › und die Subtraktion ‹ − ›).
Assoziativitätsrichtungen
Im Ausdruck »12/3/4« der erste Operator in einem Operanden enthalten ist (»(12/3)/4«), während
Die Priorität der Multiplikation gleicht der der Divison. Wenn eine Division oder Multiplikation direkt einander folgen, so wird deswegen die Linksassoziativität der Multiplikation herangezogen, derzufolge dann die erste (linke) Operation zuerst ausgeführt wird. Daher bedeutet beispielsweise »2/3*4« dasselbe wie »(2/3)*4« oder »4*(2/3)«.
- Eigenschaften
A (A = Assoziativitaet)
() Eingeklammerter Ausdruck
+ - Unaere vorangestellte Operatoren (Vorzeichen)
* / L "Punktrechnung": Multiplikation, Division
+ - L "Strichrechnung": Addition, Subtraktion
Die Ärität
Die Eigenschaft eines Operators unär oder binär zu sein bezeichnet man nach der Endung „-är“ auch als Ärität (oder auch als „Arität “ oder als „Stelligkeit “). Ein unärer Operator hat die Ärität Eins ein binärer Operator die Ärität Zwei. Wir können die Ärität noch zu unser Tabelle hinzufügen.
- Eigenschaften
A A (A = Aeritaet, A = Assoziativitaet)
() 1 Eingeklammerter Ausdruck
+ - 1 Unaere vorangestellte Operatoren (Vorzeichen)
* / 2 L "Punktrechnung": Multiplikation, Division
+ - 2 L "Strichrechnung": Addition, Subtraktion
Die Position
Die Eigenschaft eines Opera
- Positionen von Operatoren
Z zirkumfix umgebend
P praefix voranstehend
I infix zwischenstehend- Eigenschaften
A P A (A = Aeritaet, P = Position, A = Assoziativitaet)
() 1 Z Eingeklammerter Ausdruck
+ - 1 P Unaere vorangestellte Operatoren (Vorzeichen)
* / 2 I L "Punktrechnung": Multiplikation, Division
+ - 2 I L "Strichrechnung": Addition, Subtraktion
Literale mit einem Operatorzeichen
Literale wie »2e+03« oder »2e-03« sind keine Summe oder Differenz, sondern bedeuten „2·10³“ beziehungsweise „2·10⁻³“. Um Summen oder Differenzen deutlich von solchen Literalen mit einem inneren Pluszeichen oder einem inneren Minuszeichen zu unterscheiden, bietet es sich an, die binären Operatoren »+« und »-« mit einem umgebenden Leerzeichen zu verwenden, also beispielsweise an Stelle von »2e+03+2e+03+2e+03« zu schreiben: »2e+03 + 2e+03 + 2e+03«.
Lexikalische Einheiten
Der Klammeroperator »(« »)« besteht aus zwei lexikalischen Einheiten, alle anderen bisher vorgestellten Operatoren sind jeweils genau eine lexikalische Einheit.