>232さん
理解できてないでしょうか?

char *str="こんにちわ";
printf("%x\n",str);
も
char str[]="こんにちわ";
printf("%x\n",str);
も、割り当てられているメモリのアドレスにかなり距離がありますが、
どちらもアドレスが出力されるのですが…