3.7.9. El operador coma

La coma no se limita a separar nombres de variables en definiciones múltiples, tales como

int i, j, k;

Por supuesto, también se usa en listas de argumentos de funciones. De todos modos, también se puede utilizar como un operador para separar expresiones - en este caso produce sólo el valor de la última expresión. El resto de expresiones en la lista separada por comas se evalúa sólo por sus efectos laterales. Este ejemplo incrementa una lista de variables y usa la última como el valor derecho:

//: C03:CommaOperator.cpp
#include <iostream>
using namespace std;
int main() {
  int a = 0, b = 1, c = 2, d = 3, e = 4;
  a = (b++, c++, d++, e++);
  cout << "a = " << a << endl;
  // The parentheses are critical here. Without
  // them, the statement will evaluate to:
  (a = b++), c++, d++, e++;
  cout << "a = " << a << endl;
} ///:~

Listado 3.35. C03/CommaOperator.cpp


En general, es mejor evitar el uso de la coma para cualquier otra cosa que no sea separar, ya que la gente no está acostumbrada a verla como un operador.