Ponteiros de Incremento, Sequência Exata

Eu acabei de começar a aprender C, e eu entendo isso

*a = *b;
a++;
b++;

e

*a++ = *b++

são equivalentes, mas é o que realmente está acontecendo quando a linha

*a++ = *b++

é chamado? Alguém pode esclarecer como o compilador está interpretando a segunda linha? Eu sei sobre a precedência da direita para a esquerda e tal, mas alguém pode precisamente escrever os passos que o compilador usa para interpretar essa linha de código?

questionAnswers(3)

yourAnswerToTheQuestion