C中的左值与右值

在学习C中有遇到左值与右值的概念,这里做出区分


左值(L-value)

可以出现在赋值符号左边的“东西”,表示了一个占据内存中某个可识别的位置(也就是一个地址)的对象。

右值(R-value)

可以出现在赋值符号右边的“东西”,不表示内存中某个可识别位置的对象的表达式。


eg: a = b + 1

这里a就是左值,标识了一个占据内存,可以存储结果值的对象

b+1是右值,不是内存中某个可识别位置的对象

假设b+1是左值,计算机在计算这个值时,没有办法预测这个结果存储在什么地方,也无法保证这个表达式的值下次是否还会存储在同一个地方,因此不是左值。

你可能感兴趣的:(C中的左值与右值)