06.10.2013 Aufrufe

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />

7.8 Präzedenzen<br />

Wie <strong>in</strong> der gewöhnlichen Mathematik gibt es auch <strong>in</strong> C e<strong>in</strong>e Operatorrangfolge, nach deren Regeln<br />

<strong>die</strong> Rechenreihenfolge der Berechnungen def<strong>in</strong>iert ist (Analog zu der Regel 'Punkt vor Strich'). Diese<br />

Reihenfolge kann durch das setzten von Klammern ausser Kraft gesetzt werden, Klammern haben<br />

<strong>die</strong> höchste Priorität. Es empfiehlt sich, auch Klammern zu setzen wo es nicht nötig ist, Klammern<br />

schaffen Klarheit.<br />

In der nachfolgenden Tabelle stehen <strong>die</strong> Operatoren nach Priorität geordnet, <strong>die</strong> mit der höchsten<br />

Priorität stehen zuoberst. Die Operatoren <strong>in</strong>nerhalb e<strong>in</strong>es Feldes haben <strong>die</strong>selbe Priorität.<br />

Die Assoziativität def<strong>in</strong>iert, ob bei gleichrangigen Operatoren von rechts nach l<strong>in</strong>ks, oder von l<strong>in</strong>ks<br />

nach rechts gerechnet wird.<br />

Beispiel für Assoziativität: a*b/c*d wird <strong>in</strong> der Reihenfolge (((a*b)/c)*d) ausgewertet.<br />

a=b=c=d wird <strong>in</strong> der Reihenfolge (a=(b=(c=d))) ausgewertet.<br />

Operator Bemerkungen Assoziativität<br />

[] () . -><br />

++ --<br />

Postfix Version (a++ b--)<br />

Von l<strong>in</strong>ks nach rechts<br />

& *<br />

+ -<br />

! ~<br />

++ --<br />

sizeof()<br />

(cast)<br />

Adress- <strong>und</strong> Dereferenz-Operator.<br />

Unäres Plus oder m<strong>in</strong>us (-b)<br />

Logisches Not; <strong>E<strong>in</strong>e</strong>rkomplement<br />

Prefix Version (++a --b)<br />

z.B. (<strong>in</strong>t) (unsigned char) (float)<br />

Von rechts nach l<strong>in</strong>ks<br />

* / % Von l<strong>in</strong>ks nach rechts<br />

- + Von l<strong>in</strong>ks nach rechts<br />

>> < >= 5 * 6 * 2 + 3 >> 4 % 3 && 4 - 5<br />

Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 30/147

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!