30.06.2013 Aufrufe

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

Softwareentwicklung in C++ - ASC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

3.3 Logische- und Vergleichsoperatoren 59<br />

<strong>in</strong>crement bzw. decrement) oder h<strong>in</strong>ten nachgestellt wird (post-<strong>in</strong>crement<br />

bzw. decrement). E<strong>in</strong>e Anwendung dieser Operatoren auf e<strong>in</strong>e Variable bewirkt<br />

e<strong>in</strong>e nachhaltige Änderung ihres Inhalts <strong>in</strong> Form e<strong>in</strong>er Zuweisung. Dies<br />

verrät uns auch e<strong>in</strong> Blick <strong>in</strong> die Operator-Tabelle: Diese Operatoren verlangen<br />

e<strong>in</strong>en lvalue als Operanden! Aber abgesehen von der Inhaltsänderung<br />

hat es noch etwas Besonderes mit diesen Operatoren auf sich, wie man am<br />

verschiedenen Rang der pre- und post-Versionen <strong>in</strong> der Tabelle sieht:<br />

• Pre-<strong>in</strong>crement bzw. pre-decrement bewirken, dass zuerst das Ergebnis der<br />

<strong>in</strong>crement- bzw. decrement-Operation berechnet (und gespeichert) wird<br />

und mit dem neuen Wert weitergearbeitet wird.<br />

• Post-<strong>in</strong>crement bzw. post-decrement bewirken, dass mit dem alten Wert<br />

weitergearbeitet wird und erst danach die <strong>in</strong>crement- bzw. decrement-<br />

Operation durchgeführt wird.<br />

Kl<strong>in</strong>gt kompliziert, ist es aber gar nicht, wenn man sich diese Zusammenhänge<br />

am Beispiel ansieht. Der Ausdruck<br />

var1 = var2++;<br />

wird so ausgewertet, dass zuerst e<strong>in</strong>e Zuweisung des Inhalts von var2 auf<br />

var1 stattf<strong>in</strong>det und danach var2 <strong>in</strong>krementiert wird. Nehmen wir z.B. an,<br />

dass vor der Auswertung dieses Ausdrucks var2 den Wert 5 enthält. Dann<br />

enthält nach Auswertung des Ausdrucks var1 den Wert 5 und var2 den Wert<br />

6. Betrachtet man den Ausdruck<br />

var1 = ++var2;<br />

so wird zuerst die <strong>in</strong>crement-Operation durchgeführt und dann das Ergebnis<br />

zugewiesen. Hätte var2 wieder vor der Auswertung den Wert 5, so würden<br />

nach Auswertung des Ausdrucks sowohl var1 als auch var2 den Wert 6 enthalten.<br />

E<strong>in</strong>e sehr genaue Abhandlung zum Thema der pre- und post-<strong>in</strong>crement bzw.<br />

-decrement Operatoren f<strong>in</strong>det sich im Buch <strong>Softwareentwicklung</strong> <strong>in</strong> C <strong>in</strong> Abschnitt<br />

5.2.2.<br />

3.3 Logische- und Vergleichsoperatoren<br />

Wie man der Tabelle entnehmen kann, stehen zum Vergleich von Werten<br />

<strong>in</strong> C ++ folgende Operatoren zur Verfügung: == prüft auf Gleichheit, != auf<br />

Ungleichheit, > prüft, ob der l<strong>in</strong>ke Wert größer als der rechte ist, < prüft,<br />

ob der l<strong>in</strong>ke Wert kle<strong>in</strong>er als der rechte ist, >= und

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!