在学习C中有遇到左值与右值的概念,这里做出区分
左值(L-value)
可以出现在赋值符号左边的“东西”,表示了一个占据内存中某个可识别的位置(也就是一个地址)的对象。
右值(R-value)
可以出现在赋值符号右边的“东西”,不表示内存中某个可识别位置的对象的表达式。
eg: a = b + 1
这里a就是左值,标识了一个占据内存,可以存储结果值的对象
b+1是右值,不是内存中某个可识别位置的对象
假设b+1是左值,计算机在计算这个值时,没有办法预测这个结果存储在什么地方,也无法保证这个表达式的值下次是否还会存储在同一个地方,因此不是左值。