nstruções de atribuição múltipla em printf em c [duplicado]

Esta pergunta já tem uma resposta aqui:

or que essas construções usam um comportamento indefinido pré e pós-increment 14 respostas

alguém pode por favor me ajudar a entender a saída do código abaixo:

int main()
{
    int a=35;
    printf("%d %d %d %d %d",a--,a,a=20,a++,a=39);
    return 0;
}

saíd: 20 19 19 39 19

nsights apreciados sobre como a atribuição é tratada (compilada) em c na função print

questionAnswers(2)

yourAnswerToTheQuestion