>>526
char *t = d;  でtにdの先頭アドレスがはいるにょ。
while(*d++ = *s++) でdにsの文字をコピーするにょ。このときdのポインタは
           '\0'まですすんでるにょ。
return t; ここでtをdにしてしまうと。'\0'をかえすだけだにょ。
      だからtの先頭アドレスはdの先頭アドレスをかえすにょ。

char *str_copy はtのアドレスをポインタとしてさしてるからdの先頭文字をさしてるにょ。
だから*str_copy だにょ