>>384
#define はテキストマクロなので、
char *str = "abcdefghijklmnopqrstuvwxyz";
printf("%p\n",str);
printf("%p\n","abcdefghijklmnopqrstuvwxyz");
と書いたのと同じ。
文字列リテラルは、内容が同じでも同じ領域に確保されるとは限らない。