El propósito del operador de coma es encadenar varias expresiones. El valor de una lista de expresiones separadas por comas es el valor de la expresión más a la derecha. Esencialmente, el efecto de la coma es hacer que se realice una secuencia de operaciones.
Los valores de las otras expresiones se descartarán. Esto significa que la expresión del lado derecho se convertirá en el valor de toda la expresión separada por comas. Por ejemplo
var = (count = 19, incr = 10, count+1);
Aquí primero asigna a count el valor 19, asigna a incr el valor 10, luego agrega 1 para contar, y finalmente, asigna a var el valor de la expresión más a la derecha, count + 1, que es 20. Los paréntesis son necesarios porque el operador de coma tiene un menor precedencia que el operador de asignación.
Para ver los efectos del operador de coma, intente ejecutar el siguiente programa:
#include <iostream>
using namespace std;
int main() {
int i, j;
j = 10;
i = (j++, j+100, 999+j);
cout << i;
return 0;
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
1010
Aquí está el procedimiento de cómo se calcula el valor de i: j comienza con el valor 10. j luego se incrementa a 11. Luego, j se agrega a 100. Finalmente, j (que aún contiene 11) se agrega a 999, lo que produce el resultado 1010.