c++ 左值 纯右值 将亡值

通俗理解(c++03

  • 能放在等号左边的是左值
  • 只能放在等号右边的是右值
  • 左值也可以作为右值使用

c++11

  1. 左值制定了一个函数或者对象,它是一个可以取地址的表达式。
  2. 右值是不和对象相关联的值(字面量)或者其求值结果是字面量或者是一个匿名的临时对象。
    如:32 ‘a’ i++
    (a+b) //匿名的临时对象;
    &x;
    将亡值:
    将纯右值转换为右值引用的表达式
int a=1;
int& b=a;//左值引用
const int& lvr5{21};//常量左值引用可以引用纯右值;
int& lvr6{22};//错 非常量左值引用不可引用纯右值;
int&& rvr2{prv(2)};//右值引用普通函数返回值;
int&& rvr1{22};//右值引用可以引用纯右值;
rvr1=++rvr2;//右值引用可以做左值引用;

猜你喜欢

转载自blog.csdn.net/qq_41932111/article/details/89738354