Unary, Binary, Ternary

Operatoren erwarten entweder einen, zwei oder drei Operanden, was im Englischen mit unary, binary und ternary bezeichnet wird.

Details

Unäre Operatoren besitzen immer nur einen Operanden, der entweder links oder rechts von dem Operator steht. Ein Beispiel für einen unären Operator ist der Negativ-Operator, der auch oft mit unary minus bezeichnet wird. Dieser Operator hat einen Operanden, den er negiert.

-a

Binäre Operatoren hingegen haben zwei Operanden, wie beispielsweise der Multiplikations-Operator, der zwei Werte miteinander multipliziert.

a * b

Der Bedingungsoperator ?: ist der einzige ternäre Operator. Er erwartet drei Operanden, wobei der erste Operand eine Bedingung bezeichnet, welche angibt, ob der zweite oder dritte Operand zurückgegeben wird.

condition ? true_value : false_value;

Im Programmieralltag ist die Einteilung in Unary, Binary und Ternary wenig nützlich, die Operatoren sind grundsätzlich so aufgebaut, dass sie intuitiv mit der richtigen Anzahl Operanden verwendet werden können. Eine Unterscheidung ist nur von theoretischem Interesse.

Der Funktionsaufruf-Operator wird zu den Binary-Operatoren gezählt, wobei die Argumentenliste als ein Operand aufgefasst wird.

Hier eine Auflistung aller Operatoren, sortiert nach unary, binary und ternary:

Unary+Positiv-Operator
Unary-Negativ-Operator
Unary!Logisch NOT
Unary~Bitweise NOT
Unary&Adress-Operator
Unary*Dereferenz-Operator
Unary++Pre-Inkrement-Operator
Unary--Pre-Dekrement-Operator
Unary++Post-Inkrement-Operator
Unary--Post-Dekrement-Operator
Unary()Operatorenklammerung
Unary::Global-Bereichsoperator
UnarynewSpeicher-Reservation-Operator
UnarydeleteSpeicher-Freigabe-Operator
Unarynew []Array-Speicher-Reservations-Operator
Unarydelete []Array-Speicher-Freigabe-Operator
UnarysizeofObjektgrösse-Operator
Unarysizeof()Typgrösse-Operator
Unarytypeid()Typ-Identifikation eines Ausdrucks
Unarytypeid()Typ-Identifikation eines Typs
UnarythrowAusnahmebehandlungs-Operator
Binary+Additions-Operator
Binary-Subtraktions-Operator
Binary*Multiplikations-Operator
Binary/Divisions-Operator
Binary%Modulo-Operator
Binary&&Logisch AND
Binary||Logisch OR
Binary&Bitweise AND
Binary^Bitweise XOR
Binary|Bitweise OR
Binary<<Shift left
Binary>>Shift right
Binary==Gleich-Operator
Binary!=Ungleich-Operator
Binary<Kleiner-Operator
Binary<=Kleiner-Gleich-Operator
Binary>Grösser-Operator
Binary>=Grösser-Gleich-Operator
Binary=Zuweisungs-Operator
Binary+=Zuweisung nach Addition-Operator
Binary-=Zuweisung nach Subtraktion-Operator
Binary*=Zuweisung nach Multiplikation-Operator
Binary/=Zuweisung nach Division-Operator
Binary%=Zuweisung nach Modulo-Operator
Binary<<=Zuweisung nach Shift-Left-Operator
Binary>>=Zuweisung nach Shift-Right-Operator
Binary&=Zuweisung nach bitweisem AND
Binary|=Zuweisung nach bitweisem OR
Binary^=Zuweisung nach bitweisem XOR
Binary[]Array-Element-Zugriff-Operator
Binary()Funktionsaufruf-Operator
Binary.Feld-Zugriff-Operator
Binary->Pointer-Zugriff-Operator
Binary.*Feld-Member-Operator
Binary->*Pointer-Member-Operator
Binary,Sequenz-Operator
Binary()expliziter Casting-Operator
Binary::Bereichsoperator
Binary()Initialisierung von Membern
Binaryconst_cast<>const-Casting-Operator
Binarystatic_cast<>static-Casting-Operator
Binarydynamic_cast<>dynamic-Casting-Operator
Binaryreinterpret_cast<>reinterpret-Casting-Operator
Ternary? :Bedingungs-Operator