1 Theorie | |
→ | 1.1 Die Programmiersprache C |
Eine Zuweisung ist eine Programmzeile der Form:
x = 8;
Hier wird einer Variablen ein Wert zugewiesen.
Der Konstrukt links vom Gleichheitszeichen wird als lvalue
(linksseitiger Wert, Konstrukt dem ein Wert zugewiesen werden kann)
bezeichnet.
Rechts vom Gleichheitszeichen befindet sich ein Term (engl.
expression, wörtlich übersetzt: Ausdruck). Dies ist entweder ein
literaler Wert, eine Konstante oder ein Berechnungsergebnis
(Konstanten, literale Werte und/oder Variablen durch
Funktionsaufrufe oder Operatoren miteinander verknüpft).
- | unäres Minus (negatives Vorzeichen) |
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Division |
% | Rest der ganzzahligen Division |
!a | Logische Negation der Bedingung a. |
a || b | Logische oder-Verknüpfung |
a && b | Logische und-Verknüpfung |
Bedingung ? Wahr-Wert : Falsch-Wert
Das Ergebnis des Operators ist der Wahr-Wert, wenn die Bedingung erfüllt ist, andernfalls der Falsch-Wert.
Beispiel:
int a, b, max; a = ... b = ... max = ( (a>b) ? (a) : (b) );
Kurzform | Ausführliche Schreibweise |
---|---|
a = i++; | a = i; i = i + 1; |
a = ++i; | i = i + 1; a = i; |
a = i--; | a = i; i = i - 1; |
a = --i; | i = i - 1; a = i; |
Die Tabelle listet die Operatoren nach absteigender
Priorität.
Der Buchstabe L bzw. R gibt an, ob Operatoren links- oder
rechtsassoziativ sind (d.h. ob bei einer Folge gleichwertiger
Operatoren die Bearbeitung mit dem ganz linken oder ganz rechten
Operator begonnen wird).
Einige Operatoren (Zeiger, Adressbildung, sizeof) werden später
noch behandelt.
() [] -> . | L |
! ~ ++ -- - (unär) * (Zeiger) & (Adressbildung) sizeof | L |
* / % | L |
+ - | L |
<< >> | L |
< <= >= > | L |
== != | L |
& | L |
^ | L |
| | L |
&& | L |
|| | L |
?: | L |
= Operator= | R |
, | R |
Quelle: CERT C Coding Standard 〈1〉
1 | http://www.securecoding.cert.org |