Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Multiplikationsoperatoren führen Multiplikations- (*
), Divisions- ( /
) und Restoperationen ( %
) aus.
Syntax
multiplicative-expression
: cast-expression
multiplicative-expression
*
cast-expression
multiplicative-expression
/
cast-expression
multiplicative-expression
%
cast-expression
Die Operanden des Restoperators (%
) müssen ganzzahlig sein. Die Operatoren der Multiplikation (*
) und der Division ( /
) können Operanden vom Typ Ganzzahl, Gleitkomma oder Zeiger akzeptieren. Dabei können sich die Operandentypen unterscheiden.
Die multiplikativen Operatoren führen die üblichen arithmetischen Konvertierungen für die Operanden aus. Der Ergebnistyp ist der Typ der Operanden nach der Konvertierung.
Hinweis
Da Konvertierungen, die von den Multiplikationsoperatoren ausgeführt werden, keine Überlauf- oder Unterlaufbedingungen vorsehen, gehen Informationen möglicherweise verloren, wenn das Ergebnis eines Multiplikationsvorgangs nach der Konvertierung nicht im Typ der Operanden dargestellt werden kann.
Die C-Multiplikationsoperatoren sind in folgender Tabelle beschrieben:
Operator | Beschreibung |
---|---|
* |
Der multiplikative C-Operator bewirkt die Multiplizierung seiner beiden Operanden. |
/ |
Der Divisionsoperator bewirkt, dass der erste Operanden durch den zweiten geteilt wird. Wenn zwei ganzzahlige Operanden dividiert werden und das Ergebnis keine ganze Zahl ist, wird sie gemäß den folgenden Regeln gekürzt: – Das Ergebnis der Division durch 0 (null) ist entsprechend dem ANSI C-Standard nicht definiert. Der Microsoft C-Compiler generiert einen Fehler zur Kompilierzeit oder Laufzeit. – Wenn beide Operanden positiv oder ohne Vorzeichen sind, wird das Ergebnis in Richtung 0 (null) abgeschnitten. – Wenn einer der beiden Operanden negativ ist, hängt es von der Implementierung ab, ob das Ergebnis der Operation die größte ganze Zahl kleiner oder gleich dem algebraischen Quotienten oder die kleinste ganze Zahl größer oder gleich dem algebraischen Quotienten ist. (Weitere Informationen finden Sie im Microsoft-spezifischen Abschnitt.) |
% |
Das Ergebnis des Restoperators ist das Restergebnis, nachdem der erste Operand durch den zweiten Operanden geteilt wurde. Wenn die Division ungenau ist, wird das Ergebnis durch die folgenden Regeln bestimmt: – Wenn der rechte Operand 0 (null) ist, ist das Ergebnis nicht definiert. – Wenn beide Operanden positiv oder ohne Vorzeichen sind, ist das Ergebnis positiv. – Wenn einer der beiden Operanden negativ und das Ergebnis ungenau ist, ist das Ergebnis von der Implementierung abhängig. (Weitere Informationen finden Sie im Microsoft-spezifischen Abschnitt.) |
Microsoft-spezifisch
In der Division, in der jeder Operand negativ ist, wird in Richtung 0 abgeschnitten.
Wenn eine Division mit dem Restoperator negativ ist, hat das Ergebnis dasselbe Vorzeichen wie der Dividend (der erste Operand im Ausdruck).
Beispiele
Die hier dargestellten Deklarationen werden für die folgenden Beispiele verwendet:
int i = 10, j = 3, n;
double x = 2.0, y;
Diese Anweisung verwendet den Multiplikationsoperator:
y = x * i;
In diesem Fall wird x
mit i
multipliziert, um den Wert 20.0 zu erhalten. Das Ergebnis ist vom Typ double
.
n = i / j;
In diesem Beispiel wird 10 durch 3 geteilt. Das Ergebnis wird in Richtung 0 verkürzt, was den Ganzzahlwert 3 liefert.
n = i % j;
Diese Anweisung weist n
den ganzzahligen Rest 1 zu, wenn 10 durch 3 dividiert wird.
Microsoft-spezifisch
Das Zeichen für den Rest entspricht dem Zeichen des Divisors. Zum Beispiel:
50 % -6 = 2
-50 % 6 = -2
In jedem Fall haben 50
und 2
dasselbe Zeichen.
Ende Microsoft-spezifisch