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. 

zurück zu 'Die Programmiersprache C++'