1)
*a = *b;
a++;
b++;
is equivalent to
*a = *b;
a = a+1;
b = b+1
2)
x = *a++
is equivalent to
x = *a;
a = a+1;
and
*b++ = x
is equivalent to
*b = x;
b = b+1;
so
*a++ = *b++
is equivalent to
*a = *b;
a = a+1;
b = b+1
3)
*(++a) = *(++b)
is equivalent to
a = a+1;
b = b+1
*a = *b;