左值引用和右值引用

左值和右值

一个值如果能取地址就是左值,反之就是右值

int a = 10     //a是左值,10是右值

左值引用

左值引用只能绑定左值

int l = 10;
int& a = l;      //正确
int& a = 10;     //错误,10是右值,不能被左值引用绑定

const int& a = 10; //正确 这行代码相当于下面注释的两行代码
//const int tmp = 10;
//const int& a = tmp;

右值引用

右值引用只能绑定右值

右值引用比用const修饰左值引用更好的地方在于可以对变量进行写操作

int&& a = 2;  //可以对a进行写操作的右值引用
const int&&a = 2;  //不可以对a进行写操作的右值引用
posted @   拾墨、  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 35岁程序员的中年求职记:四次碰壁后的深度反思
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
· ShadowSql之.net sql拼写神器
· Excel百万数据如何快速导入?
· 无需WebView,Vue也能开发跨平台桌面应用
点击右上角即可分享
微信分享提示