ああ、わかったような気がします。
上と下、*pとpで別々の物に代入しているわけじゃなかったんですね。
char* pと書いたほうがいい理由もわかりました。ありがとうございます