Não é possível entender o motivo da saída

Estou executando um trecho de código. Mas não consigo entender o código e a saída que está produzindo.

<code>#include <stdio.h>
int main()  
{ 
  int a, b,c, d;    
  a=3;    
  b=5;    
  c=a,b;    
  d=(a,b);      
  printf("c = %d" ,c);    
  printf("\nd = %d" ,d);    
  return 0;
}  
</code>

A saída deste programa é:

<code>c=3
d=5
</code>

Eu não estou entendendo como a saída está chegando?

questionAnswers(3)

yourAnswerToTheQuestion