>>constが*にかかって
char *p;
で*pをポインタと考えてるからだろうが!違うぞ pがポインタで*pはその内容を意味する。
だから
char const *p
は p の指す内容を不変とすること。
char * const p;
は p の指すアドレスそのものを不変とすること。