码迷,mamicode.com
首页 > 其他好文 > 详细

左值和右值

时间:2019-08-16 13:23:45      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:操作   内存   为什么   ati   地址   c++语言   理解   ima   右值   

按字面意思,通俗地说。以赋值符号 = 为界,= 左边的就是左值,= 右边就是右值。 
比如:(1) int b = 3;
           (2) int a = b;第(2)行代码,a为左值,b为右值。
变量名编译之后,会映射成内存地址。看看a = b的含义。其实就是 将 "b地址内存里面的数据",放到"a地址内存"中
 技术图片
 
 
L-value :L, 理解成 Location,表示定位,地址。
 
技术图片

 

R-value: R 理解成 Read,表示读取数据(non-lvalue 相等于  R-value)
 
 
左值:
C/C++语言中可以放在赋值符号左边的变量,即具有对应的可以由用户访问的存储单元,并且能够由用户去改变其值的量。左值表示存储在计算机内存的对象,而不是常量或计算的结果。或者说左值是代表一个内存地址值,并且通过这个内存地址,就可以对内存进行读并且写(主要是能写)操作;这也就是为什么左值可以被赋值的原因了。
右值:
相对应的还有右值:当一个符号或者常量放在操作符右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值。简单来说就是,左值相当于地址值,右值相当于数据值。右值指的是引用了一个存储在某个内存地址里的数据。
 
总结:关于右值和左值区别,在于这个值通过用户访问修改和有自己的空间即为左值;否则为右值。

左值和右值

标签:操作   内存   为什么   ati   地址   c++语言   理解   ima   右值   

原文地址:https://www.cnblogs.com/single-dont/p/11363244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!