Como funciona o operador de vírgula

Como o operador de vírgula funciona em C +

Por exemplo, se eu fizer:

a = b, c;  

Um final é igual a b ou c?

(Sim, eu sei que isso é fácil de testar - basta documentar aqui para alguém encontrar a resposta rapidamente.)

Atualizar Esta questão expôs uma nuance ao usar o operador de vírgula. Apenas para documentar isso:

a = b, c;    // a is set to the value of b!

a = (b, c);  // a is set to the value of c!

Esta questão foi realmente inspirada por um erro de digitação no código. O que se pretendia ser

a = b;
c = d;

Se torno

a = b,    //  <-  Note comma typo!
c = d;

questionAnswers(9)

yourAnswerToTheQuestion