Freigeben über


Reihenfolge der Auswertung

In diesem Abschnitt werden die Reihenfolge, in der Ausdrücke ausgewertet werden, jedoch werden keine Syntax oder die Semantik der Operatoren in diesen Ausdrücken.Die vorherigen Abschnitte bieten einen vollständigen Verweis für jeden dieser Operatoren bereit.

Ausdrücke werden entsprechend der Rangfolge und Gruppierung der Operatoren ausgewertet.(Operatorenrangfolge und Assoziativität in Lexikalische Konventionen, werden die Beziehungen an, die die C++-Operatoren Ausdrücken auferlegen). Betrachten Sie das folgende Beispiel:

Beispiel

// expre_pluslang__pluslang_Order_of_Evaluation.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main()
{
    int a = 2, b = 4, c = 9;

    cout << a + b * c << "\n";
    cout << a + (b * c) << "\n";
    cout << (a + b) * c << "\n";
}

Output

38
38
54

Ausdrucksauswertungs-Reihenfolge

Ausdrucksauswertungsreihenfolge

Die Reihenfolge, in der der Ausdruck, der in der obigen Abbildung gezeigte ausgewertet wird, wird durch die Rangfolge und Assoziativität der Operatoren bestimmt:

  1. Multiplikation (*) besitzt den höchsten Priorität in diesem Ausdruck. Dadurch wird der Teilausdruck b * c zuerst ausgewertet.

  2. Addition (+) besitzt den höchsten Rang, sodass a ist das Produkt aus b hinzugefügt und aus c.

  3. Verschiebung nach links (<<) weist den niedrigsten Rangfolge im Ausdruck gibt es jedoch zwei Instanzen.Da die Linksschiebeoperator Gruppen von links nach rechts, der linke und das rechte erste Teilausdruck ausgewertet wird.

Wenn Klammern verwendet werden, um die Teilausdrücke zu gruppieren, ändern Sie sie die Rangfolge sowie die Reihenfolge, in der der Ausdruck ausgewertet wird, wie in der folgenden Abbildung dargestellt.

Ausdrucksauswertungs-Reihenfolge mit Klammern

Ausdrucksauswertungsreihenfolge mit Klammern

Die Ausdrücke wie in der obigen Abbildung sind rein für die Nebeneffekte — in diesem Fall ausgewertet, um Informationen in das Standardausgabegerät zu übertragen.

Siehe auch

Referenz

Semantik von Ausdrücken