左值与右值的区别

定义:左值与右值的定义在于一个赋值等号,赋值等号左边成为左值,等号右边成为右值

左值(L-value):表示存储在计算机内存的对象,可寻址,相当于地址值

右值(R-value):代表的为真实值,可读,即数据值


因为左值是一个地址值,因此可以对左值进行赋值操作,而右值本身就是同一个数据值,就不存在对一个数据值就行赋值的操作。

例如:

int a,b;
a=5;//为合法的操作,因为a是个地址值;
b=a;//这个也是个合法操作,在这里b为地址值,a取其数据值即5(注意这里不是取地址值,因为a是作为一个右值)
5=5;//这是一个非法操作,因为左值是个数据值,右值也是个数据值


转载出处:http://baike.baidu.com/view/9489098.htm

你可能感兴趣的:(C,C++)