对左值(lvalue)和右值(rvalue)的两种理解方式
Posted purelaw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对左值(lvalue)和右值(rvalue)的两种理解方式相关的知识,希望对你有一定的参考价值。
在《C++ Primer 中文版(第五版)》(电子工业出版社)中的说法有:
- 当一个对象被用作右值的时候,用的是对象的值(内容);当对对象被用作左值的时候,用的是对象的身份(在内存中的位置)。
而我在再次学习计算机原理中的“代码区、常量区、全局(静态)区、堆区、栈区”后想到的一个新理解是:
右值是不可控的,左值是可控的。
右值,要么在程序一开始运行以后就已经确定了,要么是程序运行到一定程度,系统就会确定的值,在值生成以后无法再次改变这个内容(当然也包括临时值);而左值可以随意改变。
以上是关于对左值(lvalue)和右值(rvalue)的两种理解方式的主要内容,如果未能解决你的问题,请参考以下文章