我尝试了以下代码:
#include<iostream>
#include<string>
using namespace std;
string f1(string s)
{
return s="f1 called";
}
void f2(string *s)
{
cout<<*s<<endl;
}
int main()
{
string str;
f2(&f1(str));
}
但是这段代码无法编译。
我的想法是:f1 按值返回,因此它创建了临时的,我正在获取地址并将其传递给 f2。
现在请解释我在哪里想错了?