编译器做了什么优化?

时间:2019-08-25 02:14:41

标签: c++

为什么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;

0 个答案:

没有答案