首页 > 解决方案 > 在同一赋值语句中将多个字符串文字转换为 const char*

问题描述

我是 C++ 的新手,我遇到了下面的代码片段,这对我来说看起来很奇怪。

const char* keys = "hello" "world";
std::cout << keys << std::endl;

上面的代码在控制台中打印helloworld 。在同一语句中将两个字符串文字分配给 const char* 在语法上是否有效?如果是这样,它将如何存储在内存中?

标签: c++string

解决方案


这是在编译之前(但在宏扩展 IIRC 之后)连接 C++(和 C)相邻字符串文字的规则。

这发生在任何地方,而不仅仅是作为赋值语句的一部分。


推荐阅读