二つ質問があるんですが、

�@charへのポインタ型を返す関数copyの返却値を、
return(cp)とするとうまく表示されません。
自分の認識では、上のcpは文字列cpの先頭要素のアドレス、つまりポインタですから
これをそのまま返しても問題ないように思います。
しかしうまく表示されなかったので、はじめにcpの先頭要素のアドレスを
ポインタsに初期化子として代入して、そのsを返すとうまく表示されました。
これがどうしてかわかりません。
�Aこのソースでプログラムを実行しても特に問題はなかったんですが、
コンパイルの段階で、「警告」と出て、
copy関数内のwhle文の条件式である
「*str++=*cp++」について、
「おそらく不正な代入」と表示されました。
どうしてなんでしょうか?
そもそも、Warningや警告というのはエラーとは違う意味で出てくると思うんですが、
実行してもエラーがなければOKっていう訳にはいかないんですかね?