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

时间:2012-04-21 20:10:45

标签: c

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

因此,以下必须获得输出hellohello

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

1 个答案:

答案 0 :(得分:10)

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

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

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

然后编译器完全可以自由创建一个文字。或者不是。