2 つの質問があります... (私は C を学んでおり、これはばかげた質問かもしれません。お詫びします)
C およびほとんどの本で文字列を宣言する方法に従って、メモリを割り当てているにもかかわらず、常に文字列を宣言すると言っています。
char p2[] = "String";
私の質問は、とにかく文字列を宣言することはありますか?
https://stackoverflow.com/a/1704433/1814023に従って、このような例では、
char s[]="hello";
読み取り専用領域に配置され、アレイにコピーされます。このように文字列のアドレスを出力することはCで有効ですか?
printf("%p\n", &"Hello There"); // I tried, it prints some address
そしてこうすることで
printf("%p\n", &"Hello There");
printf("%p\n", &"Hello There");
同じ住所を印刷しています。感じているのは、別のアドレスを出力する必要があることです。コンパイラはここで最適化を行っていますか?