5

是否保证字符串文字相邻存储在内存中?

因此以下是否一定会得到输出hellohello

printf(3 + "%d");
printf("hello");
4

1 回答 1

10

不,字符串文字存储在编译器喜欢的任何地方。您在连续行中声明其中两个的事实是无关紧要的。您不能对编译器将它们存储在哪里做任何假设。

编译器可以做各种各样的事情。例如,如果您编写以下代码

printf("hello");
printf("hello");

那么编译器完全可以自由地只创建一个文字。或不。

于 2012-04-21T20:12:30.230 回答