左值和右值是C和C++编程语言中的概念,主要涉及到赋值操作。以赋值符号=为界,=左边的就是左值,=右边就是右值。
左值表示存储在计算机内存的对象,而不是常量或计算的结果。或者说左值是代表一个内存地址值,并且通过这个内存地址,就可以对内存进行读并且写(主要是能写)操作;这也就是为什么左值可以被赋值的原因了。相对应的还有右值:当一个符号或者常量放在操作符右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值。
简单来说就是,左值相当于地址值,右值相当于数据值。