なんで上級者は、

*p++ = *q++;

って、書きたがるのですか?

*p = *q;
p = p + 1;
q = q + 1;

って書いたほうが、間違いがなくて、はるかに分かりやすいと思うけど、
こう書いたら、死ぬほど怒られた・・・