C/C++中的变量有左值和右值之分,他们的区别主要如下: (1)左值可以放在赋值号 = 的左右两边,右值只能放在赋值号 = 的右边 (2)在C语言中,有名字的变量即为左值:而函数的运行结果或表达式中间变量即为右值 (3)对于内嵌类型(基本类型,即built-in types),右值是不可以被更改的,也不可以被const,volatile所修饰: 对于自定义类型,右值却可以通过它的成员函数来进行修改. (4)左值也可以作为右值表达式,变量可以是左值,也可以为右值,但常量只能是右值. (5)右值只能