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

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

一、左值与右值

  • 啥是左值和右值呢?

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

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

二、左值引用于右值引用

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

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

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

四、引入右值引用的原因

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

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

猜你喜欢

前TVB台柱与农夫组合再度同台,串嘴三人组合依然保持默契

近期,Do姐(郑裕玲)再度和农夫组成的毒舌三人组亮相。在活动开始时,Do姐依然表现得非常敬业、充满活力,积极为广告商宣传产品;而农夫的调皮本色则没有改变,他们继续用自己一贯的幽默风格参与互动,让现场的气…

前TVB台柱与农夫组合再度同台,串嘴三人组合依然保持默契

徐帆陪读多年,冯小刚从不认亲,徐朵成了家里的隐形女儿(徐帆原配)

冯小刚在公开场合被叫作爸爸时,表情并非敷衍的微笑,而是发自内心的笑容,眼神里也透出一丝放松,就像是已经悄然接受了这个身份,尽管他们之间没有法律上的婚姻关系,却早已心照不宣。 冯小刚从未公开提过徐朵的生母是…

徐帆陪读多年,冯小刚从不认亲,徐朵成了家里的隐形女儿(徐帆原配)

36岁『张天爱』公布年初写真大片,越来越成熟独立的她,不仅仅是性感(『张天爱』现在多大了)

与曾经那个肆意张扬、狂野奔放的形象相比,如今的『张天爱』已然深刻领悟到,作为一名女演员,成熟的演技与状态绝非仅仅依靠姣好的身材。不禁让人满心期待,在2026年,能否在荧幕上再次邂逅『张天爱』,欣赏她带来的精彩电影或…

36岁『张天爱』公布年初写真大片,越来越成熟独立的她,不仅仅是性感(『张天爱』现在多大了)

开局即是高潮的6部暴力美学大片,全程高能无冷场,强烈推荐(开局即高潮的电影)

第一滴血》是一部极具影响力的动作片,因为它创造了兰博这一经典的荧幕形象。 吴宇森游走好莱坞的颠覆之作当属《变脸》无疑,悬疑众生,高潮迭起的变脸互换,可谓是同时考验了尼古拉斯•凯奇与约翰•特拉沃塔两位好莱坞…

开局即是高潮的6部暴力美学大片,全程高能无冷场,强烈推荐(开局即高潮的电影)

不用花几十万找外包!5款国产低代码工具,轻松搞定OACRM审批流(花了几十万)

今天就给大家整理了5个国产低代码神器,操作简单、性价比拉满,搭出来的系统效果,完全不输专业外包团队,预算有限也能轻松拿捏,建议先收藏,后续用到绝对不慌。 它最大的亮点就是全功能永久免费,没有隐藏费用,不限制用…

不用花几十万找外包!5款国产低代码工具,轻松搞定OACRM审批流(花了几十万)