使用函数更改std::string的内容

3

我觉得这个答案应该很快很简单,但是我现在似乎无法弄明白它。

 #include <string>
 #include <iostream>
 using namespace std;
 void change_thing (string x) {
      x="not thing";
 }
 int main() {
     string maybe_thing;
     maybe_thing="thing";
     change_thing(maybe_thing);
     cout << maybe_thing << endl;
     return 0;
 }

我希望当代码打印时,“maybe_thing”是“not thing”。我尝试了许多不同的指针策略,但似乎没有任何作用(可能是因为我做错了;我的指针知识并不完整,因为我刚接触c ++)。谢谢!

3
void change_thing (string x)修改为void change_thing (string &x),这样就可以通过引用传递参数。目前你正在修改函数内的局部副本。 - Shafik Yaghmour
1个回答

5
你不需要指针,只需通过引用传递字符串即可:

按引用传递参数

void change_thing (string & x) {
    x="not thing";
}

好的,我猜那很容易。谢谢! - Sardonyx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接