名称 含义
左值 一般出现在赋值表达式的左边,但也可以出现在赋值表达式的右边。其特点是有变量名即可通过地址访问并修改的内存块
右值 只能出现在赋值表达式的右边,特点是没有名字,即没有可访问的地址名,只有一个值,不可修改

常规函数返回值是右值

引用返回类型是左值

如果对引用返回类型前加const限定符,则其由左值变成右值

标准C++语言中,临时量(术语为右值,因其出现在赋值表达式的右边)可以被传给函数,但只能被接受为const &类型。而非&(引用)类型。所以参数为右值时面对只能是引用的函数原型,会报错。
左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。一个区分左值与右值的便捷方法是:看能不能对表达式取地址,如果能,则为左值,否则为右值。

class list
{
.....
bool push_back(char e)
// bool  push_back(char & e)  若是此句则下面语句会出现错误
// bool push_back(const char & e) 此句可以运行!!
......
};
list a;
a.push_back('a')    // 传入的是右值,采用按值传递则正确,按引用传递则错误,右值没有引用,但是有 const & (限定引用)!!

赋值表达式的左值和右值相关推荐

  1. c 表达式必须是可修改的左值_C++中的左值,右值,左值引用,右值引用

    童帅 2020-2-22 文中的"表达式"都是指赋值表达式 左值,右值,左值引用,右值引用 到底是什么 左值和右值 int a = 10; int b = 5; int c = a ...

  2. C/C++左值性精髓(二)哪些表达式是左值,哪些是右值?----右值表达式

    2019独角兽企业重金招聘Python工程师标准>>> C对于右值的定义是表达式的值,C中所有完整表达式的结果都是右值.所谓完整表达式(full expression),指的是这样的 ...

  3. C++/C++11中左值、左值引用、右值、右值引用的使用

    C++的表达式要不然是右值(rvalue),要不然就是左值(lvalue).这两个名词是从C语言继承过来的,原本是为了帮助记忆:左值可以位于赋值语句的左侧,右值则不能. 在C++语言中,二者的区别就没 ...

  4. 【 C 】对左值与右值的一些个人思考

    今天重温C语言的指针,看的书是<C和指针>,关于左值和右值以及指针表达式的内容看得甚是迷惑与煎熬,怎么会这么难理解,指针表达式又是作为左值又一会作为右值,而且二者有着不一样的含义,为什么当 ...

  5. c/c++左值和右值

    C/C++中的变量有左值和右值之分,他们的区别主要如下: (1)左值可以放在赋值号 = 的左右两边,右值只能放在赋值号 = 的右边 (2)在C语言中,有名字的变量即为左值:而函数的运行结果或表达式中间 ...

  6. 39.左值、左值引用、右值、右值引用

    1.左值和右值的概念 左值是可以放在赋值号左边可以被赋值的值:左值必须要在内存中有实体:          右值当在赋值号右边取出值赋给其他变量的值:右值可以在内存也可以在CPU寄存器.       ...

  7. 2020-10-27(左值和右值)

    什么是表达式: 表达式由一个或多个操作数通过操作符组合而成.最简单的表达式仅包含一个字面值常量.较复杂的表达式则由操作符以及一个或者多个操作数构成. 一个变量是表达式但是一个表达式就不一定是变量了. ...

  8. c语言 变量的左值和右值,C++雾中风景10:聊聊左值,纯右值与将亡值

    C++11的版本在类型系统上下了很大的功夫,添加了诸如auto,decltype,move等新的关键词来简化代码的编写与降低阅读代码的难度.为了更好的理解这些新的语义,笔者确定通过几篇文章来简单窥探一 ...

  9. 左值、右值、左值引用、右值引用

    1. 左值 左值(lvalue,left value),顾名思义就是赋值符号左边的值,可以取地址.准确来说,左值是表达式(不一定是赋值表达式)后依然存在的持久对象. 可以将左值看作是一个关联了名称的内 ...

最新文章

  1. π是无理数证明定积分_证明圆周率是无理数很容易?人类花了2000年!
  2. linux的编程命令,linux编程常用命令
  3. SpringMVC 参数解析器
  4. vb 绘制图形/蝴蝶动画
  5. java tika pdf转图片_使用tika将pdf转为html
  6. 【闲聊产品】之七:投票真的有用么?
  7. A. Red and Blue Beans
  8. css实现背景颜色透明,文字不透明
  9. 企业级网络建站工作室源码
  10. java复杂的代码做程序_摆脱复杂烧脑的程序代码,利用快速开发平台轻轻松松做软件...
  11. 交叉编译mpg321到MX27 ADS Rel3平台
  12. xss漏洞工具 -- xsser
  13. Android安全 Hook技术,Android下通过hook技术实现透明加解密保障数据安全
  14. mysql 迁移 myd_mysql文件*.opt *.frm *.MYI *.MYD的迁移
  15. Java进阶-requestresponse (十一)
  16. Dither(抖动): Bayer Matrix(Bayer ordered dither matrix)与Bayer Filter(拜尔滤镜)
  17. 【计算机视觉40例】案例28:表情识别
  18. 极值点、驻点、拐点、关系点
  19. windows域名解析服务器地址,Win10打开提示无法解析服务器DNS如何解决
  20. Windows7使用inter7代cpu更新补丁问题

热门文章

  1. 小学计算机病毒与危害的课,计算机病毒与危害
  2. 苹果手机怎么把语音备忘录转化成文字
  3. Tomcat 端口配置
  4. win 10升级后不能访问服务器文件夹,Win10系统文件夹无法访问拒绝访问怎么办?...
  5. 分布式存储Ceph存储系统RADOS
  6. 起诉时不知对方名下多少银行账户,怎么申请财产保全
  7. cad亮度自动变暗_如何修复不会自动变暗的Google Home集线器
  8. 【表面缺陷检测】基于yolov7的钢板表面缺陷检测(附代码)
  9. div绝对居中的六种方法
  10. 有助深度睡眠的MP3