L'opérateur virgule a la propriété suivante : expression1 , expression2 : les 2 expressions sont évaluées, mais le résultat de l'opérateur virgule est la partie droite.
Ainsi, si tu écris
a est évalué, puis b est évalué, le résultat de a,b vaut b. Donc ton code peut se résumer à
Ceci aurait été différent si tu n'avais pas mis les parenthèses :
Auquel cas, l'expression1 (ici c=a) aurait été évaluée.