enunciados de asignación múltiple en printf en c [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué estas construcciones utilizan un comportamiento indefinido previo y posterior al incremento? 14 respuestas

puede alguien ayudarme a entender la salida del código a continuación:

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

salid: 20 19 19 39 19

apreciación de cómo se maneja (compila) la asignación en c en la función printf.

Respuestas a la pregunta(2)

Su respuesta a la pregunta