Positiv-Operator +

Der Positiv-Operator dient der expliziten Positiv-Kennzeichnung eines Elementes und wird in C auch mit unary plus bezeichnet. Er wird stets vor das zu kennzeichnende Element geschrieben, beispielsweise +value oder +999.






999
999
-999
-999
#include <stdio.h>

int main(){
  int pos = + 999;
  int neg = - 999;
  printf("%d\n",     pos);
  printf("%d\n",   + pos);
  printf("%d\n",     neg);
  printf("%d\n",   + neg);
  return 0;
}

Details

Der Positiv-Operator erwartet einen Operanden als rvalue und wird von rechts nach links abgearbeitet. Der Rückgabewert ist ein rvalue und hat denselben Typ wie der Operand.

Die semantische Bedeutung der Positiv-Kennzeichnung ist die Multiplikation mit +1. Zumindest für die arithmetischen Typen ist somit klar, dass der Positiv-Operator keinerlei Wirkung hat, er ist kein Absolut-Operator, da er aus dem negativen Wert nicht einen positiven macht, sondern ihn nur mit +1 multipliziert. Für den Absolut-Wert ist die Funktion abs() zuständig.

Folgende Konstrukte sind wenig sinnvoll, jedoch möglich:

999
-999
999
printf("%d\n", + + pos);
printf("%d\n", + + neg);
printf("%d\n", + + + + + + + pos);

Vorsicht: Folgende Zeile sieht zwar fast gleich aus, allerdings handelt es sich aufgrund des fehlenden Abstandes zwischen den den beiden + hier um den Increment-Operator, welcher die Variable verändert:

1000
printf("%d\n",  ++ pos);

Dieser Unterschied ist jedoch hinfällig, wenn der Positiv-Operator gemischt mit dem Negativ-Operator auftritt, da ein solcher Operator nicht existiert und somit als jeweils einzelne Positiv- und Negativ-Operatoren aufgelöst wird:

-999
-999
-999
-999
printf("%d\n", - + pos);
printf("%d\n",  -+ pos);
printf("%d\n", + - pos);
printf("%d\n",  +- pos);

Der Positiv-Operator hat somit in erster Linie nur kosmetischen Nutzen, da er Formeln und Zuweisungen übersichtlicher schreiben kann:

val1 = - 123;
val2 = + 456;
val3 = - 789;