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.