Operatore virgola C ++
Lo scopo dell'operatore virgola è mettere insieme più espressioni. Il valore di un elenco di espressioni separate da virgole è il valore dell'espressione più a destra. In sostanza, l'effetto della virgola è quello di far eseguire una sequenza di operazioni.
I valori delle altre espressioni verranno scartati. Ciò significa che l'espressione sul lato destro diventerà il valore dell'intera espressione separata da virgole. Ad esempio:
var = (count = 19, incr = 10, count+1);
Qui prima assegna a count il valore 19, assegna a incr il valore 10, quindi aggiunge 1 a count e infine assegna a var il valore dell'espressione più a destra, count + 1, che è 20. Le parentesi sono necessarie perché l'operatore virgola ha un precedenza inferiore rispetto all'operatore di assegnazione.
Per vedere gli effetti dell'operatore virgola, prova a eseguire il seguente programma:
#include <iostream>
using namespace std;
int main() {
int i, j;
j = 10;
i = (j++, j+100, 999+j);
cout << i;
return 0;
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
1010
Ecco la procedura per calcolare il valore di i: j inizia con il valore 10. j viene quindi incrementato a 11. Successivamente, j viene aggiunto a 100. Infine, j (contenente ancora 11) viene aggiunto a 999, che restituisce il risultato 1010.