通常来说有名字的变量就是左值(如上面例子中的 a, b),而由运算操作(加减乘除,函数调用返回值等)所产生的中间结果(没有名字)就是右值
左值就是在程序中能够寻值的东西,右值就是没法取到它的地址的东西(不完全准确)
在C++之中的变量只有左值与右值两种:
凡是可以取地址的变量就是左值,
而没有名字的临时变量,字面量就是右值”
记这个:
左值和右值都是针对表达式而言的,
左值是指表达式结束后依然存在的持久对象
右值是指表达式结束时就不再存在的临时对象
https://www.cnblogs.com/catch/p/3500678.html