Neben den bisher kennengelernten Operatoren gibt es noch ein paar
Operatoren, die typisch für C++ bzw. C sind. Da wären zum
einen die Inkrement- und Dekrement-Operatoren zu nennen, die eine
Integerzahl um eins erhöhen bzw. erniedrigen: ++ und
--.
Sie sind unäre Operatoren (d.h. sie beziehen
sich nur auf einen Wert) und können vor oder nach einer
Variablen stehen. Eine Variable muß es deshalb sein, da diese
Operatoren den Nebeneffekt haben, die Variable mit zu verändern.
So macht es zwar wenig Sinn einen arithmetischen Ausdruck wie 5*a
wie einen Befehl in ein Programm zu schreiben (auch wenn es erlaubt
ist), aber die Verwendung eines Inkrementoperators in der Form i++
macht durchaus Sinn, da danach i um eins erhöht
wurde.
Ob sie vor oder nach einer Variablen stehen, macht erst
einen Unterschied, wenn das Ergebnis zugewiesen wird. Bei beiden
Schreibweisen wird die Variable zwar erhöht bzw. erniedrigt,
aber bei der Schreibweise hinter der Variablen wird noch der alte
Wert zurückgegeben, bei der Schreibweise vor der Variablen der
neue:
b = 3; a=++b; // b = b + 1; a = b; (a und b sind 4) a=b++; // a = b; b = b + 1; (a ist immer noch 4, b ist 5)
Eine andere Besonderheit ist der Operator für eine
arithmetische Abfrage. Er ist dreistellig und benutzt daher zwei
Symbole, ein Fragezeichen zwischen dem ersten und zweiten Wert und
ein Doppelpunkt zwischen den letzten beiden. Er gibt den zweiten Wert
zurück, wenn der erste wahr ist und den dritten sonst. Damit
kann man zum Beispiel ein Maximum zweier Werte bestimmen:
max=(a>b)?a:b;