代码
std::string str = "Hello " "world";
std::cout << str << std::endl;
编译并打印Hello world
。同样,
char chr[] = "abc" "def" "ghi";
std::cout << chr << std::endl;
打印abcdefghi
。这是如何以及为什么有效?
答案 0 :(得分:5)
这是[lex.phases] / 6
所涵盖的行为连接相邻的字符串文字标记。
因此,在编译器实际开始编译代码之前,所有字符串文字只是为了将空格连接在一起而分开。
"hello " "world";
"hello " "world";
"hello "
"world";
所有产生"hello world";
答案 1 :(得分:3)
仅由空格分隔的字符串文字会自动连接see cppreference