Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
文字列リテラルがメモリに隣接して格納されることが保証されていますか?
したがって、以下は必然的に出力を取得しますかhellohello
hellohello
printf(3 + "%d"); printf("hello");
いいえ、文字列リテラルはコンパイラが好きな場所に保存されます。それらのうちの2つを連続した行で宣言したという事実は関係ありません。コンパイラがそれらをどこに格納するかについては、仮定することはできません。
コンパイラはあらゆる種類のことを行うことができます。たとえば、次のコードを書く場合
printf("hello"); printf("hello");
その場合、コンパイラーは完全に自由に1つのリテラルのみを作成できます。か否か。