C++ Primer第五版总结之左值、右值

一、左值和右值

  1. C++中使用对象的值(内容)对象作右值,使用对象的身份(在内存中的位置)对象作左值。
    ①左值可代替右值使用,右值不可当左值使用。
    ②左值当右值使用时,实际使用的是它的内容(值)。

  2. 使用关键字decltype,如果表达式(不是变量)求值结果是左值,得到引用类型。

  3. 函数返回
    ①引用返回左值,调用返回引用的函数得到左值,其他返回类型得到右值。
    ②可像使用其他左值一样来使用返回左值函数的调用,可为返回类型是非常量引用的函数结果赋值。

运算符

  1. 算术运算符、逻辑和关系运算符
    ①运算对象和求值结果都是右值。

  2. 赋值运算符
    ①左侧运算对象是可修改的左值,返回左侧运算对象,求值结果是左值。

  3. 递增递减运算符
    ①作用于左值运算对象,前置版本将对象本身作为左值返回,后置版本将对象原始值的副本作为右值返回。
    ②迭代器递增递减运算符同上。

  4. 成员访问运算符
    ①箭头运算符作用于指针类型的运算对象,结果是左值。
    ②点运算符如果成员所属对象是左值则结果是左值,成员所属对象是右值则结果是右值。

  5. 条件运算符
    ①cond ? expr1 : expr2,如果两个表达式都是左值或者能转换成同一种左值类型,运算结果是左值,否则运算结果是右值。

  6. 逗号运算符
    ①返回右侧表达式的值,若右侧运算对象为左值,运算符结果为左值。

  7. 其他
    ①内置解引用运算符、下标运算符求值结果为左值。
    ②迭代器解引用运算符、string和vector下标运算符求值结果为左值。
    ③取地址符作用于左值运算对象,返回指向运算对象的指针为右值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值