美文网首页
c++左值和右值那些事

c++左值和右值那些事

作者: 橘子粟粟 | 来源:发表于2019-10-20 15:35 被阅读0次

当一个对象被用作右值时,用的是对象的值(内容);当对象被用作左值时,用的是对象的身份(在内存中的位置)

右值=值内容,左值=值位置

  • 赋值运算符运算对象为左值,得到的结果也为左值
  • 取地址符运算对象为左值,得到的指针结果为右值
  • 解引用和下标运算符的求值结果为左值
  • 内置类型和迭代器的递增和递减运算符的运算对象为左值,前置版本的结果也为左值

decltype关键字与左/右值

如果表达式的求值结果为左值,decltype作用于该表达式得到一个引用类型
例如:
p是int 类型
decldype(
p) 解引用产生的是左值,则得到的类型为int&引用类型
decldype(&p)得到的类型为int** 取地址产生的是右值,结果是一个指向整型指针的指针

相关文章

  • C++11那些难事:左值引用、右值引用与完美转发

    上一篇C++那些难事:左值与右值搞明白左值与右值,下面讲解左值引用与右值引用。 1. 左值引用与右值引用 左值右值...

  • c++左值和右值那些事

    当一个对象被用作右值时,用的是对象的值(内容);当对象被用作左值时,用的是对象的身份(在内存中的位置) 右值=值内...

  • 右值引用小结

    今天总结下右值的那些事儿 什么是右值 右值的必要性 move函数 什么是右值 传统c++的引用就是左值引用,使得标...

  • 左值右值引用和移动构造

    左值与右值 左值引用右值引用 C++ 11中用&表示左值引用,用&&表示右值引用 (move函数可以把一个) 进...

  • 引用叠加规则和模板参数类型推导规则

    1.基础知识 读这篇文章之前,你该掌握如下的知识,c++的左值和右值,以及模板的基础知识。c++的左值和右值文章可...

  • 右值引用

    参考资料 谈谈 C++ 中的右值引用C++11 左值、右值、右值引用详解

  • C++ 左值与右值 右值引用 引用折叠 => 完美转发

    左值与右值 什么是左值?什么是右值? 在C++里没有明确定义。看了几个版本,有名字的是左值,没名字的是右值。能被&...

  • C++11右值引用、移动语义和完美转发

    左值、右值 在C++中,所有的值不是左值,就是右值。左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束后...

  • C++11之move语义

    要理解c++11的move语义,就需要理解C++中的左值和右值和临时对象的概念。 左值与右值和临时对象的简单介绍:...

  • [进阶]C++:算数运算

    左值和右值 理解这两个意思对后面的内容非常重要。C++的表达式不是左值,就是右值。在C++中可以归纳为:当一个对象...

网友评论

      本文标题:c++左值和右值那些事

      本文链接:https://www.haomeiwen.com/subject/wwqamctx.html