首页 > 其他分享 >左值、右值、左值引用和右值引用

左值、右值、左值引用和右值引用

时间:2023-02-25 16:55:13浏览次数:27  
标签:右值 int 左值 引用 && 表达式

  • 左值

  左值为一个非临时性对象的表达式,通常为定义的带名字的变量。

  • 右值

  相对于左值,右值是临时性对象的表达式。

  • 左值引用

  以 int 基本类型为例,左值引用的定义:int x = 0;  int &y = x;

  需要注意的是,左值引用的对象 必须是可以修改的左值,下面列举反例:

  const int z = 1;

  int &conf1 = z;  // z为常量,虽为左值但不可修改

  int &conf2 = x + y;  // 表达式 x+y 产生了一个临时变量,临时变量是右值

  int & conf3 = 1;  // 显然,1作为一个数值常量是一个右值

  • 右值引用

  右值引用使用双取地址符 && ,右值引用场景特殊,暂且不讨论

  具体为:

  int &&a = 0;  // 显然,它可以引用右值

标签:右值,int,左值,引用,&&,表达式
From: https://www.cnblogs.com/meetalone/p/17154776.html

相关文章

  • Java 8 Lambda 方法引用 简记
    Lambda表达式以及方法引用Java8的新特性笔记,重点讲的是:Lambda函数式接口方法引用Steam流Lambda表达式Lambda的基础使用不记录,记录JDK8实战书上的一些底......
  • java int 引用传递
    integer是final,不可变的,所以也无法实现引用传递的功能。解决方案int[]做一个包装类org.apache.commons.lang.mutable.MutableIntjava.util.concurrent.atomic.Atomi......
  • c++引用与结构
    引用非常适合用于结构和类,使用结构引用参数的方式与使用基本变量引用相同,只需在声明结构参数时使用引用运算符&即可。structfree_throws{stringname;intmode;in......
  • 52.左值
    左值参数是可以被引用的数据对象。例如,变量、数组元素、结构成员、引用和接触引用的指针。非左值包括字面常量(用引号括起的字符串除外,他们由其它地址表示)和包括多项的表达......
  • 引用、强制类型转换、临时变量的关系
    doublea=9.9;int&b=a;很明显上面的代码编译会报错,C++引用时不能跨数据类型。doublea=9.9;int&b=(int)......
  • 值类型、引用类型的区别
    值类型存放在栈上,引用类型存放在堆上,结构体是值类型,类是引用类型,string是引用类型区别:值类型通常被分配在栈上,它的变量直接包含变量的实例,使用效率比较高。引用类型......
  • 【C语言】结构体自己引用、结构体内存、结构体对齐规则。
    ......
  • Hexo 引用本地Html使用自定义页面
    前言hexo在部署时会渲染md文件,将md文件转换为html文件。本地html文件不需要再次渲染,所以只需要在根目录将html跳过渲染即可。具体步骤存放文件在[ROOT]\source\创......
  • 指针和引用的区别
    指针是一个变量,存储的是一个地址,引用跟原来的变量实质上是同一个东西,是原变量的别名指针可以有多级,引用只有一级指针可以为空,引用不能为NULL且在定义时必须初始化指针......
  • 微信小程序主包和分包的资源可以相互引用吗
    了解主包、分包整个小程序所有分包大小不超过20M;单个分包/主包大小不能超过2M主包:a.放置默认启动页面&&tabBar页面,以及一些分包需要用到的公共资源(如wxss、......