C++右值引用,右值引用与const引用的区别
1.右值与左值
- 左值:可以取地址的、有名字的变量,有持久性;
- 右值:一般是不可寻址的常量,或在表达式求值过程中创建的无名临时对象,短暂性的。
2.右值引用
C++11新增了另一种引用——右值引用。这种引用可指向右值,使用&&声明。
右值引用只能引用临时变量和常量值。
int main()
{double a = 15.2;//double& a1 = a * 2 + 10.2;//错误,不能引用临时变量double&& ra = a * 2 + 10.2;//右值引用,合法//double& b1 = sqrt(100);//错误,不能引用常量double&& rb = sqrt(100);//合法cout << ra << "," << rb << endl;return 0;
}
3.const引用与右值引用的区别
- const引用:可以引用普通左值、const左值、右值,但不能修改const引用的值。
- 右值引用:不能引用左值,只能引用右值,但右值引用的值可以修改。
int main()
{//const引用int a = 10;const int ca = 20;const int& b = a;//const引用,引用普通左值const int& c = ca;//const引用,引用const左值const int& d = 30;//const引用,引用右值cout << b << "," << c << "," << d << endl;//b=100;//报错,不能修改const引用的值//右值引用//int&& e = a;//报错,右值引用,不能引用左值//int&& f = ca;//报错,右值引用,不能引用const左值int&& g = 30;//右值引用,引用右值g = 300;//右值引用,值可以修改cout << g << endl;//300return 0;
}
相关文章:
C++右值引用,右值引用与const引用的区别
1.右值与左值 左值:可以取地址的、有名字的变量,有持久性;右值:一般是不可寻址的常量,或在表达式求值过程中创建的无名临时对象,短暂性的。 2.右值引用 C11新增了另一种引用——右值引用。这种引用可指向…...
启英泰伦推出「离线自然说」,离线语音交互随意说,不需记忆词条
离线语音识别是指不需要依赖网络,在本地设备实现语音识别的过程,通常以端侧AI语音芯片作为载体来进行数据的采集、计算和决策。但是语音芯片的存储空间有限,通过传统的语音算法技术,最多也只能存储数百条词条,导致用户…...
Vulnhub-DC1
前言 一个比较简单的实战靶场,官方要求是找到/root下的flag,所以直接提权即可。但对于学习和训练来说还是太简略了,在打靶场的时候还是全面一些较好。 本次靶场实战涉及信息收集、漏洞查找与利用、getshell、数据库渗透、密码破解、linux提…...
【c++笔记】总结!c++与c语言的不同之处
(Θ3Θ) hi~ 众所周知\(^o^)/~,c语言和c联系密切,又相互区别,本篇文章主要介绍c与c语言的区别与联系以及一些简单的不同点的运用,很适合刚接触c的朋友,一起来瞧瞧看吧~~ 目录 一、文章内容梗概 二、概念…...
大模型PEFT技术原理(一):BitFit、Prefix Tuning、Prompt Tuning
随着预训练模型的参数越来越大,尤其是175B参数大小的GPT3发布以来,让很多中小公司和个人研究员对于大模型的全量微调望而却步,近年来研究者们提出了各种各样的参数高效迁移学习方法(Parameter-efficient Transfer Learning&#x…...
VMware vSphere运维管理手册
适用版本:VMware vSphere 7.0 VMware vSphere 是 VMware 的虚拟化平台,可将数据中心转换为包括 CPU、存储和网络资源的聚合计算基础架构。vSphere 将这些基础架构作为一个统一的运行环境进行管理,并为您提供工具来管理加入该环境的数据中心。 