c++ - 在同一赋值语句中将多个字符串文字转换为 const char*

标签 c++ string

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

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

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

最佳答案

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

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

关于c++ - 在同一赋值语句中将多个字符串文字转换为 const char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55295315/

相关文章:

c++ - 使用 COM 互操作时,为什么后期绑定(bind)会修复 "ByRef value type parameter cannot be null"错误?

c++ - 将C++中的 vector 元组包装为元组

c++ - 隐藏文件时记录 C++ 宏

java - 使用其他语言而不是英语作为java字符串(以波斯语为例)

java - 如何使用java正则表达式识别字符的第四次出现

java - java中创建一个String会自动创建一个String的新对象吗?

c++ - 如何在多线程中使用模板类型作为槽和信号参数?

c++ - 是否有可用于 C++ 的广泛使用的多处理抽象库?

mysql - 如何创建一个自动递增的字符串?

javascript - 类型错误:字符串不是函数