Operatore di Sequenziale-Valutazione
L'operatore di sequenziale-valutazione, anche denominato “l'operatore virgola,„ restituisce i due operandi in sequenza da sinistra a destra.
Sintassi
espressione:
espressione di assegnazioneespressione , espressione di assegnazione
L'operando sinistro dell'operatore di sequenziale-valutazione viene valutato come void espressione.Il risultato dell'operazione presenta lo stesso valore e il tipo dell'operando.Ogni operando può essere di qualsiasi tipo.L'operatore di sequenziale-valutazione non esegue le conversioni di tipi tra i propri operandi e non genera un l-value.Esiste un punto di sequenza dopo il primo operando, che significa che tutti gli effetti collaterali dalla valutazione dell'operando di sinistra vengono completati prima valutazione iniziale dell'operando.vedere punti di sequenza per ulteriori informazioni.
L'operatore di sequenziale-valutazione in genere utilizzato per valutare due o più espressioni in contesti in cui una sola espressione è consentita.
Virgole possono essere utilizzati come separatori in alcuni contesti.Tuttavia, è necessario prestare attenzione a non confondere l'utilizzo della virgola come separatore con il relativo utilizzo come operatore; i due utilizzi completamente diverso.
Esempio
In questo esempio viene illustrato l'operatore di sequenziale-valutazione:
for ( i = j = 1; i + j < 20; i += i, j-- );
In questo esempio, ogni operando di per la terza espressione dell'istruzione viene valutata in modo indipendente.l'operando sinistro i += i viene valutato per primo, quindi l'operando, j––, viene valutato.
func_one( x, y + 2, z );
func_two( (x--, y + 2), z );
Nella chiamata di funzione a func_one, tre argomenti, separati da virgole, vengono passati: x, y + 2e z.Nella chiamata di funzione a func_two, le parentesi forzano il compilatore per interpretare il primo virgola come operatore di sequenziale-valutazione.questa chiamata di funzione passa due argomenti a func_two.Il primo argomento è il risultato dell'operazione di sequenziale-valutazione (x--, y + 2), che presenta il valore e il tipo dell'espressione y + 2; il secondo argomento è z.