Spezielle
Operatoren in C++ von: Ansgar Schiffler zurück zu 'Die Programmiersprache C++'
|
|
Kombinierte Zuweisungsoperatoren Wenn Sie den Wert der Variablen 'a' um 5 erhöhen möchten, können Sie das in C++ mit folgender Anweisung erreichen: a = a + 5; Hierfür gibt es die Kurzschreibweise: a += 5; '+=' ist ein kombinierter Zuweisungsoperator. Andere kombinierte Zuweisungsoperatoren sind: -=, *=, /= und %=. Übungsaufgabe: Welche Werte sind nach Ausführung dieser Anweisungen in a,b und c gespeichert? int a = 10, b = 4, c = 2; a += b; //entspricht: a = a + b; zu a wird der Wert von b hinzuaddiert. Jetzt gilt: a = 14 b *= c; //entspricht: b = b * c; b wird mit dem Wert von c multipliziert. Jetzt gilt: b = 4*2 = 8 b *= a + c; //es wird erst a + c errechnet, also 14 + 2 = 16. Jetzt wird b mit 16 multipliziert. b = 128. b %= a /* entspricht b = b%a. Das Zeichen '%' steht für Modulo-Division. Das Ergebnis ist der ganzzahlige Rest der Division. 144%14 ergibt 4, denn bei der Division erhält man das Ergebnis 10 und den Rest 4. Somit wird der Variablen b nun der Wert 4 zugewiesen. */ Inkrementoperatoren Wenn Sie den Wert einer Variablen nur um 1 erhöhen möchten, können Sie den Inkrementoperator verwenden. a++; //mit dieser Anweisung wird der Wert der Variablen a um 1 erhöht. Genauso gut können Sie '++a;' schreiben, dies macht keinen Unterschied. Den Inkrementoperator '++' können Sie auch auf der rechten Seite von Zuweisungen verwenden. Hierzu ein Beispiel: a = 5; b = 7; c = 10; c = b * a++; Es wird zunächst b * a berechnet, also 7 * 5 = 35. Dieser Wert wird der Variablen c zugewiesen. Anschließend wird der Wert von a um 1 erhöht. Nach Ausführung dieser Anweisung sind nun also in den Variablen a, b und c die Werte 6, 7, und 35 gespeichert. Zweites Beispiel: a = 5; b = 7; c = 10; c = b * ++a; Es wird zunächst der Wert von a um 1 erhöht. Somit ist in a nun der Wert 6 gespeichert. Dann wird b * a berechnet, also 7 * 6 = 42. Nach Ausführung dieser Anweisung sind nun also in den Variablen a, b und c die Werte 6, 7, und 42 gespeichert. Wenn der Operator '++' vor der Variablen steht, wird er als 'Prae-Inkrementoperator' bezeichnet, wenn er hinter der Variablen steht, wird er als 'Post-Inkrementoperator' bezeichnet. Dies macht nur einen Unterschied, wenn er auf der rechten Seite einer Zuweisung verwendet wird. Beim Prae-Inkrementoperator wird erst der Wert der Variablen um 1 erhöht und dann mit diesem neuen Wert gerechnet. Beim Post-Inkrementoperator wird erst mit dem alten Wert gerechnet und anschließend wird der Wert der Variablen um 1 erhöht. Für die Variable, auf die der Inkrementoperator angewendet wird, macht dies keinen Unterschied (in obigen Beispielen ist am Ende in beiden Fällen in der Variablen a der Wert 6 gespeichert), aber für das Ergebnis der Berechnung macht es einen Unterschied (in obigen Beispielen ist am Ende im ersten Fall in der Variablen c der Wert 35 gespeichert und im anderen Fall der Wert 42). Analog zum Inkrementoperator gibt es auch den Dekrementoperator, der aus zwei Minuszeichen besteht und den Wert einer Variablen um 1 vermindert. |
|