RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 863439
Accepted
calm27
calm27
Asked:2020-08-02 18:03:11 +0000 UTC2020-08-02 18:03:11 +0000 UTC 2020-08-02 18:03:11 +0000 UTC

什么是右值和左值?

  • 772

rvalue我在不同的资源上发现了不同的定义lvalue,。怎么样?

right value还是read value?

left value还是locator value?

c++
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Best Answer
    αλεχολυτ
    2020-08-02T18:27:53Z2020-08-02T18:27:53Z

    最初,它是关于赋值运算符的左右部分。但是这种简单的解密没有正确的版本,也不可能。条款将保持rvalue不变lvalue。但其中蕴含的意义,在标准中已经清楚地说明了。所有这些构成了表达式的类别。

    表达层次

    • 左值(“广义”左值)

      其求值定义对象、位域或函数的实体的表达式。

    • prvalue(“纯”右值)

      一个表达式,其评估初始化对象、位域或评估运算符操作数的值,视使用上下文而定。例如,文字42, true,nullptr字符串文字除外,它们是左值表达式。

    • xvalue(“eXpiring”左值)

      这是一个glvalue,表示其资源可以重用的对象或位域(通常是因为它们接近其生命周期的终点)。例如,调用的结果是一个xvaluestd::move表达式。

    • 左值

      它是一个glvalue,它不是一个xvalue。例如,变量、函数或数据成员的名称,无论其类型如何,甚至是右值引用类型的变量,都形成一个左值表达式。

    • 右值

      它是prvalue或xvalue。

    因此,任何表达式主要是一个lvalue、xvalue或prvalue。右值已经是一个概括。

    • 21
  2. Croessmah stands with Russia
    2020-08-02T18:24:11Z2020-08-02T18:24:11Z

    我不知道你所说的“如何”是什么意思。rvalue 和 lvalue 是表达式的类别。这是标准中写的内容:

    — 泛左值是一个表达式,其评估确定对象、位域或函数的身份。
    — prvalue 是一个表达式 >,它的求值初始化一个对象或一个位域,或者计算一个运算符的操作数的值,由它出现的上下文指定。
    - 一个xvalue是一个glvalue,它表示一个对象或位域,其资源可以被重用(通常是因为它接近其生命周期的终点)。
    — 左值是不是 xvalue 的左值。
    — rvalue 是 prvalue 或 xvalue。

    //...
    [注意:在历史上,左值和右值之所以被称为是因为它们可以出现在赋值的左侧和右侧(尽管这通常不再是正确的);glvalues是“广义”的左值,prvalues是“纯”的右值,xvalues是“eXpiring”的左值。尽管它们的名称,这些术语对表达式进行分类,而不是对值进行分类。——尾注]

    • 3

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5