Elementare Syntax von C++: Weitere Operatoren

Einige einfache arithmetische Operationen können in C++ in einer Kurzform geschrieben werden (Inkrement-Operator, Dekrement-Operator, Kurzform-Operatoren). Wenn möglich sollen diese auch eingesetzt werden, da sie schneller ausgeführt werden als die entsprechenden Befehle in der ausführlichen Schreibweise.

Einordnung des Artikels

Inkrement- und Dekrement-Operator

Beim Programmieren werden oft Zählvariablen eingesetzt, die bei jedem Rechenschritt um eins erhöht oder erniedrigt werden. Um nicht jedesmal

i = i + 1

schreiben zu müssen, gibt es den sogenannten Inkrement-Operator, der dies abkürzt. Allerdings gibt es ihn in zwei Varianten, als nachfolgende Inkrementierung (postfix increment) und als vorherige Inkrementierung (prefix increment).

Die nachfolgende Inkrementierung wird geschrieben als

i++     // postfix increment

was heißen soll: i wird verwendet und anschließend um 1 erhöht.

Steht dagegen ++ vor der Variable, wird die Variable zuerst erhöht und dann verwendet.

++i     // prefix increment

Das folgende Beispiel zeigt den Unterschied:

short i = 10;
cout << "i = " << i++ << endl;      // i = 10
cout << "i = " << i << endl;        // i = 11

i = 10;
cout << "i = " << ++i << endl;      // i = 11
cout << "i = " << i << endl;        // i = 11
cout << "i = " << ++i << endl;      // i = 12

Der Dekrement-Operator erniedrigt entsprechend eine Variable um eins, er wird mit dem doppelten Minuszeichen geschrieben:

i--     // postfix decrement: i wird verwendet und dann um 1 erniedrigt
--i     // prefix decrement: i wird um 1 erniedrigt und dann verwendet

Das entsprechende Beispiel zu oben:

short i = 10;
cout << "i = " << i-- << endl;      // i = 10
cout << "i = " << i << endl;        // i = 9

i = 10;
cout << "i = " << --i << endl;      // i = 9
cout << "i = " << i << endl;        // i = 9
cout << "i = " << --i << endl;      // i = 8

Tip:

Verwenden Sie Inkrement- und Dekrement-Operator niemals in verschachtelten Anweisungen — sie führen nur zu Verwirrung. Ebenso sollte man die Operatoren nicht in direkt aufeinanderfolgenden Anweisungen für eine Variable verwenden.

Kurzform-Operatoren

Neben den Inkrement- und Dekrement-Operatoren kommen häufig Zuweisungen der folgenden Art in Programmen vor:

x = x + 5;
x = 2 * x;
x = x - 10;
x = x / 2;
x = x % 2;

Auch hierfür gibt es Kurzschreibweisen:

x += 5;
x *= 2;
x -= 10;
x /= 2:
x %= 2;

Die Operatoren wie += werden Kurzform-Operatoren oder zusammengesetzte Operatoren (arithmetic assignment operator) bezeichnet; ihnen gemeinsam ist, dass sie eine arithmetische Operation mit einer Zuweisung kombinieren.

Tip:

Wenn möglich, sollten Sie die Kurzform-Operatoren einsetzen; sie sind zwar schwerer zu lesen (als die ausführliche Form) aber in der Ausführung etwas schneller.