大佬教程收集整理的这篇文章主要介绍了C++左值和右值(详解版),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
int x = 34;
int &lRef = x;
&
符号来指示的,它出现在类型与变量的标识符之间,这种类型的引用称为左值引用。int square(int a) { return a * a; } int main() { int x = 0; // 1 x = 12; // 2 cout << x << endl; // 3 x = square(5); // 4 cout << x << endl; // 5 return 0; }在该程序中,x 是@L_696_0@左值,这是因为 x 代表@L_696_0@内存位置,它可以被程序的其他部分访问,例如上面注释的第 2、3、4 和 5 行。
&
符号(&&),以下代码使用了右值引用打印了两次 5 的平方:int && rRef = square(5); cout << rRef << endl; cout << rRef << endl;有意思的是,声明@L_696_0@右值引用,给@L_696_0@临时内存位置分配@L_696_0@名称,这使得程序的其他部分访问该内存位置成为了可能,并且可以将这个临时位置变成@L_696_0@左值。
int x = 0;
int && rRefX = x;
int && rRef1 = square(5);
在初始化完成之后,这个包含值 square(5) 的内存位置有了@L_696_0@名称,即 rRef1,所以 rRef1 本身变成了@L_696_0@左值。这意味着后面的这个初始化语句将不会编译:int && rRef2 = rRef1;
究其原因,就是右侧的 rRef1 不再是@L_696_0@右值。综上所述,临时对象最多可以有@L_696_0@左值引用指向它。如果函数有@L_696_0@临时对象的左值引用,则可以确认,程序的其他部分都不能访问相同的对象。以上是大佬教程为你收集整理的C++左值和右值(详解版)全部内容,希望文章能够帮你解决C++左值和右值(详解版)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。