printf ("% d% d% d \ n", ++ a, a ++, a) saída [duplicada]

Duplicata Possível:
Alguém poderia explicar esses comportamentos indefinidos (i = i ++ + ++ i, i = i ++, etc…)

Eu não sou capaz de entender a saída deste programa (usandogcc).

main()
{
  int a=10;
  printf("%d %d %d\n",++a, a++,a);
}

Saída:

12 10 12

Também, por favor explique a ordem de avaliação de argumentos deprintf().

questionAnswers(3)

yourAnswerToTheQuestion