char *str;
str = "Hello";

とすると、Helloの入ったメモリ領域の先頭アドレスの値がstrに入る。

で、仮にその後に
str = "World!";
と入れると、World!を指す先頭アドレスがstrになる。

ただし、strは配列構造ではないので、strcpyでは書き換えは
できない。
配列の各要素はその1文字ずつに初期化子があるため、strcpyで
取り扱える。
ポインタは先頭アドレスで初期化されるため、その先のデータに
初期化子が与えられない。