早教吧作业答案频道 -->其他-->
lvalue和rvalue的区别俺以前的在C入门的理解是lvalue是可以被赋值、修改的,rvalue是只读的.但在vc++2010入门书里面是这样解释的:lvalue:指的是内存中持续存储数据的一个地址.rvalue:临时存储的
题目详情
lvalue和rvalue的区别
俺以前的在C入门的理解是lvalue是可以被赋值、修改的,rvalue是只读的.
但在vc++2010入门书里面是这样解释的:
lvalue:指的是内存中持续存储数据的一个地址.
rvalue:临时存储的表达式结果.
以下三个表达式:
a=b+c;
b=++a;
c=a++;
其中:语句1:表达式"b+c"是一个rvalue.
语句2:表达式"++a"是一个lvalue;
语句3:表达式"a++"是一个rvalue;
因为基本上每章都有lvalue和rvalue的讨论,俺看了半天也不明白其区别和含义,这书我快看不下去了.如果能浅显易懂的让俺明白最好了.
俺以前的在C入门的理解是lvalue是可以被赋值、修改的,rvalue是只读的.
但在vc++2010入门书里面是这样解释的:
lvalue:指的是内存中持续存储数据的一个地址.
rvalue:临时存储的表达式结果.
以下三个表达式:
a=b+c;
b=++a;
c=a++;
其中:语句1:表达式"b+c"是一个rvalue.
语句2:表达式"++a"是一个lvalue;
语句3:表达式"a++"是一个rvalue;
因为基本上每章都有lvalue和rvalue的讨论,俺看了半天也不明白其区别和含义,这书我快看不下去了.如果能浅显易懂的让俺明白最好了.
▼优质解答
答案和解析
lvalue 就是 left value 左值
rvalue 就是 right value 右值
之所以叫这么个名字, 是因为 左值 可以放在 = 的左边, 而右值不可以.
int a;
const int b = 3;
a = 10; // a可以放在=的左边, 也就是说可以赋值, 那么就是"左值"
b = 10; // const 类型不可以赋值, 也就是说不可以放在=的左边, 所以是"右值"
左值包括所有的 "非const" 变量.
右值包括所有"不能赋值"的东西, 包括const 变量, 临时变量, 常数等等.
b+c 返回临时对象, 右值, 所以你不可以 b+c = x;
++a 前 ++和--都返回本身的引用, 属于左值, 所以可以(++a) = x; 虽然这么写没有意义.
a++ 后 ++和--都返回临时变量, 是"右值"
是左值还是右值, 只要看他能不能被赋值就可以了.
至于const对象, 你非要用强制类型转换让他变成左值也不是不可以..
rvalue 就是 right value 右值
之所以叫这么个名字, 是因为 左值 可以放在 = 的左边, 而右值不可以.
int a;
const int b = 3;
a = 10; // a可以放在=的左边, 也就是说可以赋值, 那么就是"左值"
b = 10; // const 类型不可以赋值, 也就是说不可以放在=的左边, 所以是"右值"
左值包括所有的 "非const" 变量.
右值包括所有"不能赋值"的东西, 包括const 变量, 临时变量, 常数等等.
b+c 返回临时对象, 右值, 所以你不可以 b+c = x;
++a 前 ++和--都返回本身的引用, 属于左值, 所以可以(++a) = x; 虽然这么写没有意义.
a++ 后 ++和--都返回临时变量, 是"右值"
是左值还是右值, 只要看他能不能被赋值就可以了.
至于const对象, 你非要用强制类型转换让他变成左值也不是不可以..
看了lvalue和rvalue的区...的网友还看了以下:
An English person is British by definition字典里的解释是 2020-05-13 …
在氯化铁溶液中加入硫酸铜溶液,根据复分解反应原则,二者不反应.可是溶液颜色会变成绿色,为什么?最好 2020-05-17 …
想一想:这名川籍工人为什么会发出这样的感慨?“家”是什么?“家”字相信大家都会写.那么拆开后呢.“ 2020-05-21 …
visitorstotheDisneyparksto这个介词在这里该如何解释,是它的什么用法. 2020-06-06 …
2011年高考语文·天津卷一卷第四个选择题(语病题)C选项句子成分分析C.说起饺子,每一个中国人都 2020-06-10 …
C字成语带解释20个开头字母是C的成语和解释, 2020-06-11 …
有些文章最后的解释是写的按,有些是注.“按和注”有什么区别? 2020-06-15 …
以下哪些解释是对的以下名词解释哪些是正确的?(多选)答对本题加5分,答错本题扣5分神游:在楼内自顾 2020-06-19 …
道德经第二篇哪种解释是对的?天下皆知美之为美,恶已①;皆知善,斯不善矣②.有无之相生也③,难易之相 2020-06-25 …
关于法不传六耳一般来说解释是不让第三个人听到吧?可是还有个解释是不传给六耳猕猴……到底哪个解释是对 2020-06-29 …