对左值(lvalue)和右值(rvalue)的两种理解方式

在《C++ Primer 中文版(第五版)》(电子工业出版社)中的说法有:

  • 当一个对象被用作右值的时候,用的是对象的值(内容);当对对象被用作左值的时候,用的是对象的身份(在内存中的位置)。

而我在再次学习计算机原理中的“代码区、常量区、全局(静态)区、堆区、栈区”后想到的一个新理解是:

  • 右值是不可控的,左值是可控的。

    右值,要么在程序一开始运行以后就已经确定了,要么是程序运行到一定程度,系统就会确定的值,在值生成以后无法再次改变这个内容(当然也包括临时值);而左值可以随意改变。

posted @ 2019-07-15 23:36  albertPaul  阅读(327)  评论(0编辑  收藏  举报