>>677
>char *pってやったら
>pはポインターだけど、char型でint型を示すことはできない

charとintでは変数のサイズが違うからな。
例えば…

char ,*p;
int *q;

とした場合、

p++; → p=p+sizeof(char); (p=p+1ではない)
q++; → q=q+sizeof(int); (q=q+1ではない)

となる。

charポインタなのにint変数を指すと、ポインタを動かした場合にint変数の中途半端なところを指してしまいおかしいことになる。