-2
   #include<iostream>
#include<string>
#include<algorithm>
using namespace std;

int main()
{


  string a ="hello";
  string b = "dear";

for (int i = 0; i < 3; ++i)
{
        string x = a.append(b);

  cout<<x<<" "<<b<<" "<<a<<endl;

}

}

为什么改变的价值我只是改变x

输出::

你好亲爱的你好

你好亲爱的亲爱的 你好亲爱的

你好,亲爱的,亲爱的,你好,亲爱的

4

1 回答 1

2

与 Python/Java/C# 中的字符串不同,C++std::string是可变的。您可以就地修改它而无需创建新的std::string.

当您调用append成员函数时,您实际上是在修改a,并且当它返回对 modified 的引用时,您在它被修改std::string创建一个副本。a append

如果您想std::string通过组合aand来创建一个新的b,请这样做。

std::string x = a + b;
于 2020-05-14T08:38:40.980 回答