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

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

一、左值与右值

  • 啥是左值和右值呢?

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

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

二、左值引用于右值引用

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

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

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

四、引入右值引用的原因

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

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

猜你喜欢

企业电话怎么办理号码认证?(如何办理企业电话)

提升电话接听率:企业号码来电时,自带企业名称、品牌logo、主营业务范围(如:XX市XXX机械制造有限公司),客户可以快速识别来电身份,同时初步了解其业务信息,建立初步的信任,消除对陌生号码的警惕,进而选择…

企业电话怎么办理号码认证?(如何办理企业电话)

枭起青壤大结局:『迪丽热巴』、陈星旭发长文告别,出道以来最意难平,剧集高开低走,问题究竟出在哪?(枭起青壤大结局干爷爷)

『迪丽热巴』的聂九罗,预告片里各种惊艳造型加上利落的打戏,被很多人看作是她转型的关键一步。『迪丽热巴』在告别长文里说的“意难平”,不仅仅是她个人的,也是观众的。 大家看到了一个好演员碰到了一个能让她发光的好角色,她…

枭起青壤大结局:『迪丽热巴』、陈星旭发长文告别,出道以来最意难平,剧集高开低走,问题究竟出在哪?(枭起青壤大结局干爷爷)

『李雪琴』,你退圈吧!(『李雪琴』 回复)

当年一句“吴亦凡你好,我是『李雪琴』”在网上火得一塌糊涂,大家都以为又是一个昙花一现的网红。段子里既有东北人的松弛劲儿,又有知识分子的深度,笑点后面是能让人点头的生活洞察。 观众不是出戏,是被笑到窒息——那份天…

『李雪琴』,你退圈吧!(『李雪琴』 回复)

她是最干净的女演员,与小丈夫结婚18年零绯闻,一家三口其乐融融(谁是最干净的人)

他们的婚姻没有轰轰烈烈的誓言,却藏着最动人的细节:赵峥会推掉应酬连夜赶回家为谢润庆生,谢润则笑着为晚归的丈夫热饭;工资卡始终交由谢润保管,她调侃 “乐意靠老公,键盘侠不用替我交物业费”,言语间满是信任与默契。…

她是最干净的女演员,与小丈夫结婚18年零绯闻,一家三口其乐融融(谁是最干净的人)

CSI-Z494人工血管薄膜破裂强度测试仪,硬脑(脊)膜补片顶破强度测试仪,硬脑(脊)膜补片水渗透压测试仪 YY0500-2025-A5.3.5 上海程斯(人工血管设计)

由可编程控制器,『触摸屏』,力值传感器,传动装置,机载打印机🖨️等组成,提供中英文菜单显示,具备人机对话设定各项参数自动运行测试模式。 压力传感器:低压范围0-1mpa(精度±0.5%FS)和高压范围1-10Mpa(…

CSI-Z494人工血管薄膜破裂强度测试仪,硬脑(脊)膜补片顶破强度测试仪,硬脑(脊)膜补片水渗透压测试仪 YY0500-2025-A5.3.5 上海程斯(人工血管设计)