char *p;
ってのは、「p に * をつけると char が得られるような p」という、
使い方の例示になっているんだよ。

> char* timpo="small";
> char* small;
> small="Timpo"; //なぜだめなんだ
これは駄目じゃなくない?