【可乐教育】C++左值(引用)和右值(引用)(可乐老师编程)

  • 写C++代码编译时,有时会出现左值问题错误或右值错误,那左值和右值究竟是什么呢???

一、左值与右值

  • 啥是左值和右值呢?

左值:在内存有确定存储地址、有变量名,表达式结束依然存在的值,简单来说左值就是非临时对象。

右值:就是在内存没有确定存储地址、没有变量名,表达式结束就会销毁的值,简单来说右值就是临时对象。

二、左值引用于右值引用

  • 知道了左值与右值了,那啥是左值引用与右值引用呢?左值引用:其实就是绑定到左值的引用,通过&来获得左值引用。
  • 总结归纳:非常量左值引用只能绑定到非常量左值上;常量左值引用可以绑定到非常量左值、常量左值、非常量右值、常量右值等所有的值类型。
  • 右值引用:其实也是绑定到右值的引用,通过&&来获得右值引用。
  • 总结归纳:非常量右值引用只能绑定到非常量右值上;常量右值引用可以绑定到非常量右值、常量右值上。

三、右值引用与左值引用的区别

  • 1、左值引用绑定到有确定存储空间以及变量名的对象上,表达式结束后对象依然存在;2、右值引用绑定到要求转换的表达式、字面常量、返回右值的表达式等临时对象上,赋值表达式结束后就对象就会被销毁。3、左值引用后可以利用别名修改左值对象;右值引用绑定的值不能修改。

四、引入右值引用的原因

  • 1、替代需要销毁对象的拷贝,提高效率:某些情况下,需要拷贝一个对象然后将其销毁,如:临时类对象的拷贝就要先将旧内存的资源拷贝到新内存,然后释放旧内存,引入右值引用后,就可以让新对象直接使用旧内存并且销毁原对象,这样就减少了内存和运算资源的使用,从而提高了运行效率;2、移动含有不能共享资源的类对象:像IO、unique_ptr这样的类包含不能被共享的资源(如:IO缓冲、指针),因此,这些类对象不能拷贝但可以移动。这种情况,需要先调用std::move将左值强制转换为右值,再进行右值引用。

特别声明:[【可乐教育】C++左值(引用)和右值(引用)(可乐老师编程)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

牢A直播撕开遮羞布,『宋祖儿』留学往事越扒越有!

『宋祖儿』曾经在公开场合多次提起自己留学时期的艰苦生活,仿佛她曾经历过无数的辛酸与困苦,然而,几张大洋彼岸的照片曝光后,情况却完全不同。巧合的是,『宋祖儿』在回国发展已近十年,事业蒸蒸日上,陈年旧事此刻被翻了出来,别…

牢A直播撕开遮羞布,『宋祖儿』留学往事越扒越有!

如懿传》的宫斗中,除了如懿出类拔萃,其实还有一位狠角色(如懿传的太后是谁演的)

就如同《如懿传》中的宫斗,那些身着华丽服饰、心机深沉的嫔妃们,心思缜密,一场又一场生死博弈,为了权力与宠爱,争斗得你死我活。凭借聪慧机智和深沉的谋略,青樱不仅在乾隆继位的第二年便被册封为娴妃,更在宫廷斗争的每…

《<strong>如懿传</strong>》的宫斗中,除了如懿出类拔萃,其实还有一位狠角色(如懿传的太后是谁演的)

【百馆千万场 服务来共享】悦读在芦图丨关爱未成年人活动预告:少儿电影展播 2.1(百场千店万铺)

迪亚哥起初心怀鬼胎,想借机将婴儿带回族群,却在与曼尼、希德的相处中逐渐被他们的善良打动。曼尼放下过去的创伤,希德找到了真正的归属感,迪亚哥也摆脱了仇恨的枷锁。 请在影片开映前将您的手机调为静音,影片放映期间禁…

【百馆千万场 服务来共享】悦读在芦图丨关爱未成年人活动预告:少儿电影展播 2.1(百场千店万铺)

64岁『张学友』捐出130万!此前被传老婆败光20亿家产狂开演唱会

当他抛出这句失业后,台下立刻爆发出欢呼声,因为大家知道,这不是告别,而是暂时的停顿,是『张学友』给自己换气的时刻。他甚至在舞台上做了一字马,这个动作不仅仅是在炫耀自己的身体,更是用最直观的方式告诉所有人:我还可以…

64岁『张学友』捐出130万!此前被传老婆败光20亿家产狂开演唱会

刘畊宏:热度褪去后,网红残酷的真相,在他身上表现得淋漓尽致(刘畊宏视频)

2022年,刘畊宏和妻子王婉霏在『直播间』低调开启带货,并成功让三款FILA品牌的商品在短时间内被抢购一空,似乎看到了新的机会。这一事件,也让人更加清晰地意识到:在网红经济中,流量虽易获取,但一旦丧失信任,恢复起…

刘畊宏:热度褪去后,网红残酷的真相,在他身上表现得淋漓尽致(刘畊宏视频)