gpt4 book ai didi

c++ - 字符串连接

转载 作者:IT老高 更新时间:2023-10-28 22:34:55 32 4
gpt4 key购买 nike

为什么可以这样做

const string exclam = "!";
const string str = exclam + "Hello" + " world";

而且不可能这样做:

const string exclam = "!";
const string str = "Hello" + " world" + exclam;

我知道(虽然不明白为什么)这是不允许的:

const string str = "Hello" + " world" + "!";

因为它会被解释为 const char[6] + const char[6] + const char[1],所以从另一方面来说,为什么这也是不允许的,或者为什么它使用char[] 而不是 string

最佳答案

+ 运算符是左关联的(从左到右求值),所以最左边的 + 先求值。

exclam 是一个 std::string 对象,它重载了 operator+ 以便以下两个都执行连接:

exclam + "Hello"
"Hello" + exclam

这两个都返回一个包含连接字符串的 std::string 对象。

但是,如果“添加”的前两件事是字符串文字,如:

"Hello" + "World"

不涉及类类型对象(这里没有std::string)。字符串文字被转换为指针,并且没有内置的 operator+ 用于指针。

关于c++ - 字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592357/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com