Spezielle C++ Operatoren

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;