C中的左值与右值

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


左值(L-value)

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

右值(R-value)

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


eg: a = b + 1

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容