Operador de vírgula C ++

O objetivo do operador vírgula é encadear várias expressões. O valor de uma lista de expressões separadas por vírgulas é o valor da expressão mais à direita. Essencialmente, o efeito da vírgula é fazer com que uma sequência de operações seja executada.

Os valores das outras expressões serão descartados. Isso significa que a expressão do lado direito se tornará o valor de toda a expressão separada por vírgulas. Por exemplo -

var = (count = 19, incr = 10, count+1);

Aqui, primeiro atribui a contagem o valor 19, atribui incremento ao valor 10, depois adiciona 1 a contagem e, finalmente, atribui var o valor da expressão mais à direita, contagem + 1, que é 20. Os parênteses são necessários porque o operador vírgula tem precedência inferior do que o operador de atribuição.

Para ver os efeitos do operador vírgula, tente executar o seguinte programa -

#include <iostream>
using namespace std;

int main() {
   int i, j;
   
   j = 10;
   i = (j++, j+100, 999+j);

   cout << i;
   
   return 0;
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

1010

Aqui está o procedimento como o valor de i é calculado: j começa com o valor 10. j é então incrementado para 11. Em seguida, j é adicionado a 100. Finalmente, j (ainda contendo 11) é adicionado a 999, o que produz o resultado 1010.