Ausdrücke können vom folgenden Typ sein:
Ausdrücke können mithilfe von Klammern zusammengefasst werden und rekursiv sein, d. h., dass ein Ausdruck aus Unterausdrücken bestehen kann.
Ein arithmetischer Ausdruck ist eine beliebige Kombination aus numerischen Operanden und einem arithmetischen oder einem bitweisen Operator.
a + b
c++
m << 1
Ein Zuweisungsausdruck besteht aus einer Variablen auf der linken Seite eines Zuweisungsoperators und einem Ausdruck auf der rechten Seite.
a = x + 42
b += c
s = "Hello"
Ein Zeichenfolgenausdruck ist eine beliebige Kombination aus Zeichenfolgen- und Zeichenoperanden und einem Zeichenfolgenoperator.
s + ".brd"
t + 'x'
Ein Kommaausdruck ist eine Folge von Ausdrücken, die durch den Kommaoperator getrennt sind.
Die Kommaausdrücke werden von links nach rechts ausgewertet, und das Ergebnis eines Kommaausdrucks ist der Typ und Wert des am weitesten rechts liegenden Ausdrucks.
i++, j++, k++
Ein bedingter Ausdruck verwendet den bedingten Operator, um eine Entscheidung innerhalb eines Ausdrucks zu treffen.
int a;
// ...code that calculates 'a'
string s = a ? "True" : "False";
Ein Funktionsaufruf überträgt den Programmfluss an eine benutzerdefinierte Funktion oder eine Builtin-Funktion. Die in der Funktionsdefinition definierten formellen Parameter werden durch die Werte der Ausdrücke ersetzt, die als die tatsächlichen Argumente des Funktionsaufrufs verwendet werden.
int p = strchr(s, 'b');