gpt4 book ai didi

c++ - 如何使用 + 运算符连接字符串

转载 作者:行者123 更新时间:2023-11-30 01:33:32 24 4
gpt4 key购买 nike

为什么一个被允许而另一个产生错误。任何人都可以解释。

#include<string>
using namespace std;
int main()
{
string s3 = "Why";
string s11 = "hello" + " , " + s3; // It gives error
string s11 = s3 + " , " +"hello" ; // This works fine.
}

最佳答案

由于运算符的优先级,行

string s11 = "hello" + " , " + s3;

处理为

string s11 = ("hello" + " , " ) + s3;

子表达式 "hello"+ ", " 不合法。第一项是 char const [6] 类型(6 个 char const 的数组),第二项是 char const [4](一个包含 4 个 char const 的数组)。

两者之间没有+运算符。这就是编译器错误的原因。


第二行

string s11 =  s3 + " , " + "hello" 

处理为

string s11 =  (s3 + " , ") + "hello" 

子表达式 s3 + ", " 是有效的,因为存在支持该操作的 operator+ 的重载。子表达式的计算结果为 std::string。因此,后面的+ "hello"也是支持的操作。

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

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