关于C++11的左值,右值,下面两段代码,都是返回函数内部的局部变量,为啥一个奔溃一个正常呢?
这段代码编译通过,运行报SIGSEGV。
string& add(string a, string b)
{
string c = a + b;
return c;
}
string &c = add("hello", "world");
cout<<"ref: "<< c <<endl;
c ="hello";
这段代码编译运行都正常:
string add(string a, string b)
{
string c = a + b;
return c;
}
string &&c = add("hello", "world");//clion上调试发现c和函数里面的c是同一个东西
cout<<"ref: "<< c <<endl;
c = "hello";