为什么temp和res的地址相同?在版本1的功能中。我认为变量temp将复制到临时变量。临时变量将复制到变量res。但是结果是temp和res的地址相同。 编译器做了什么优化?
string version1(const string&s1, const string& s2){
string temp= s2 + s1 + s2;
cout<<"temp in version1 address :"<<&temp<<endl;
return temp;
}
string s1 = "hello";
string s2 = "world";
string res = version1(s1, s2);
cout<<&res<<endl;