Condividi tramite


Ordine di valutazione

In questa sezione viene descritto l'ordine in cui vengono valutate le espressioni ma non viene illustrata la sintassi o la semantica degli operatori in queste espressioni.Le sezioni precedenti forniscono un riferimento completo per ognuno di questi operatori.

Le espressioni vengono valutate in base alla priorità e il raggruppamento degli operatori.(precedenza e associatività di operatore in convenzioni lessicali, nelle relazioni degli operatori di C++ impongono le espressioni.) Si consideri l'esempio seguente:

Esempio

// 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

ordine di Espressione-Valutazione

Ordine di valutazione delle espressioni

L'ordine in cui l'espressione riportata nella figura sopra viene valutata è determinato dalla precedenza e dall'associatività degli operatori:

  1. La moltiplicazione (*) ha la massima precedenza in questa espressione; la sottoespressione b * c viene valutato per primo.

  2. Addizione (+) ha la precedenza più elevata successivo, pertanto a verrà aggiunto al prodotto di b e c.

  3. Lo spostamento a sinistra (<<) ha la precedenza minima nell'espressione, ma esistono due occorrenze.Poiché operatore di spostamento a sinistra raggruppa da sinistra a destra, la sottoespressione sinistra innanzitutto e viene quindi valutata la destra.

Quando le parentesi vengono utilizzate per raggruppare le sottoespressioni, si modifica la precedenza e anche l'ordine in cui l'espressione viene valutata, come illustrato nella figura seguente.

Ordine di Espressione-Valutazione con parentesi

Ordine di valutazione delle espressioni con parentesi

Espressioni come tali nella figura sopra vengono valutate puramente per gli effetti collaterali (in questo caso, per trasferire le informazioni del dispositivo di output standard.

Vedere anche

Riferimenti

Semantica delle espressioni