那篇文章写的有点问题,这个理解也有问题 左值右值是一个表达式的属性,叫做值类别,不是修饰变量的。a = b 中的 b 是左值,是变量名 b 构成的标识符表达式是左值,不是变量是左值 move一个变量不会失去原有值,move只是将一个左值表达式转为亡值表达式,从而能调用移动构造/移动赋值,没有对变量做出任何修改。转换后的亡值表达式指代的那个变量会不会失去值,和move没有关系 左右值引用也和性能没有直接关系,只能说传递引用的过程不会发生拷贝,实际还是要看函数在做什么,有些情况下使用值传递也不会导致额外拷贝:https://stackoverflow.com/questions/51705967/advantages-of-pass-by-value-and-stdmove-over-pass-by-reference