*s++=*t++
implies that; *s
and *t
must be evaluated to produce a variable (lvalue) and original values of s
and t
is used in this process (i.e, the value of s
and t
before increment) . *t
must be assigned before increment of s
.
Note that it is not necessary that increments will happen after the assignment. Rather, the original values must be used. As long as the original value is used, the increment can happen at any time.
It should be also noted that the post increment ++
comes after the variable does not mean that the increment will take place after assignment.
Suggested reading: Incrementing Pointers, Exact Sequence.