Video: 02C.2 Reihenfolge von und, oder, mal, geteilt usw. in C 2024
Alle Operatoren führen eine bestimmte Funktion in C ++ aus. Darüber hinaus hat jeder Operator eine Priorität - eine bestimmte Reihenfolge, in der die Ausdrücke ausgewertet werden. Bedenken Sie zum Beispiel, wie sich die Priorität auf das Lösen des folgenden Problems auswirkt:
int var = 2 * 3 + 1;
Wenn die Addition vor der Multiplikation durchgeführt wird, ist der Wert des Ausdrucks 2 mal 4 oder 8. Wenn die Multiplikation zuerst ausgeführt wird, ist der Wert 6 plus 1 oder 7.
Der Vorrang der Operatoren bestimmt, wer zuerst geht. Der Begriff des Vorrangs ist auch in der Arithmetik vorhanden. C ++ hält sich an die allgemeine Arithmetikpriorität. Daher hat die Multiplikation eine höhere Priorität als die Addition, also ist das Ergebnis 7.
Was passiert also, wenn zwei Operatoren mit derselben Priorität im gleichen Ausdruck vorkommen? Zum Beispiel:
int var = 8/4/2;
Wenn Operatoren mit derselben Priorität im gleichen Ausdruck vorkommen, werden sie von links nach rechts ausgewertet (die gleiche Regel wie bei der Arithmetik). In diesem Codeschnipsel ist var also gleich 8 dividiert durch 4 (was 2 ist) dividiert durch 2 (was 1 ist).
Der Ausdruck
x / 100 + 32
dividiert x durch 100, bevor 32 addiert wird. Aber was ist, wenn der Programmierer x durch 100 plus 32 teilen möchte? Der Programmierer kann die Priorität ändern, indem er Ausdrücke in Klammern (Schattierungen der Algebra!) Wie folgt zusammenfasst:
x / (100 + 32)
Dieser Ausdruck hat den gleichen Effekt wie die Division von x durch 132. Der ursprüngliche Ausdruck
x / 100 + 32
ist identisch mit dem Ausdruck
(x / 100) + 32