左值、右值、左值引用,右值引用,std::move函数

news/2024/11/9 0:31:51/文章来源:https://www.cnblogs.com/aclq/p/18536167

左值、右值、左值引用,右值引用,std::move函数

1. 左值和右值

 int i = 10; //  对象:一块内存区域i = 20;//  左值:能用在赋值语句等号左侧的东西,它能够代表 一个地址//  右值:不能作为左值的就是右值//  结论:C++ 的一条表达式,要么就是左值,要么就是右值,不可能两者都不是//  左值有时候能够被当做右值使用i = i + 1;  //  因为已经出现在左侧了,所以是左值【i 用在等号右边的时候,我们说 i 有一种右值属性(不是右值)】//  用到左值的运算符有哪些://  a) 赋值运算符int a;printf("%d\n", a = 4);  //  整个赋值语句的结果仍然是左值(即:一个内存地址)(a = 4) = 8;//  b) 取地址 &int b = 5;int* p = &b;    //  指针变量也是变量(所以也是左值)//  c) string, vector 下标[] 都需要左值string abc = "I love You";vector<int>::iterator iter;abc[0];iter++;iter--;//  d) 通过看一个运算符在一个字面值上能不能操作,我们就可以判断运算符是否用到的是左值//  i++,5++//  左值表达式【左值】、右值表达式【右值】//  左值:代表一个地址,所以左值表达式的求值结果,就得是一个对象。

2. 引用分类

2.1 左值引用

2.2 右值引用

3. std::move 函数

4. 左值和右值总结说明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/829121.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024-2025-1 20241329 《计算机基础与程序设计》第七周学习总结

作业信息 作业归属课程:https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP 作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07 作业目标:数组与链表、基于数组和基于链表实现数据结构、无序表与有序表、树、图、子程序与参数 作业正文:https://www.cnb…

ChCore-lab2

lab 2: Memory Manage(working) 新的环境好像不支持arm架构了,总是会在make build触发错误 exec chbuild not found. 我们于是只能使用utm平台+qemu模拟amd64架构的ubuntu系统来进行运行。 首先我们还是先进行make build来获得我们想要的环境。 1 Buddy System练习题1: 完成 k…

lab2

lab 2: Memory Manage(working) 新的环境好像不支持arm架构了,总是会在make build触发错误 exec chbuild not found. 我们于是只能使用utm平台+qemu模拟amd64架构的ubuntu系统来进行运行。 首先我们还是先进行make build来获得我们想要的环境。 1 Buddy System练习题1: 完成 k…

开源 - Ideal库 - 常用时间转换扩展方法(二)

分享时间转换的扩展方法,包括TimeOnly、DateOnly与DateTime间的转换,并介绍代码结构设计与组织、单元测试、文档的重要性,以partial类、功能分类优化代码结构,后续将上传至Nuget。书接上回,我们继续来分享一些关于时间转换的常用扩展方法。01、时间转日期时间 TimeOnly 该…

杂题部分

杂题部分3131. 找出与数组相加的整数 I思路 快排+直接找差值。 void quickSort(int *arr,int low,int high) {if(high<=low) return;int i=low;int j=high;int pivot=arr[low];while(1){// 1. 自左到右搜索,直到比pivot大后停止。while(arr[i]<=pivot){i++;if(i==high) …

20222312 2024-2025-2 《网络与系统攻防技术》实验四报告

一、恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者 (1).通过kali中的file命令查看文件格式和可运行平台,即exe文件,Win32平台 通过PEID查壳文件发现使用UPX壳二、使用IDA Pro静态或…

点阵LED电路分析

以点阵的左上角LED为例,即 A1 LED为例,进行电路分析 9号脚接着LED的阳极,所以9号脚需是高电平,13号脚连着LED的阴极,所以13号脚需是低电平 9号脚连接着Q10的集电极,欲使9号脚为高电平,则需要Q10导通 Q10的发射极连接着+5V电压,欲使Q10导通,则基极需为低电平,即LEDC0为…

苹果手机和电脑数据互传

利用共享的文件夹 这个方法简单来说就是iPhone通过远程连接到Windows服务器,利用共享的文件夹来进行照片中转。 注意:iPhone和Windows必须要连接到同一个局域网内! ● Windows设置 第一步,获取Windows电脑的IP地址。 具体操作是先打开“Windows设置-网络和Internet-网络和共…

由一个业务需求引发的对 ASP.NET 全局变量的调研及结果

在单机模式下,使用哪种技术来存储身份状态信息比较安全可靠呢?前言 前段时间使用 ASP.NET MVC + Form Auth 做了一个单机小项目,当时对于采用什么方式来存储登录状态有些纠结,通常的做法是使用 Cookie 或者 Session,但是我想有没有更好的方式来存储登录状态呢?于是花了点…

苹果手机数据传输

利用共享的文件夹 这个方法简单来说就是iPhone通过远程连接到Windows服务器,利用共享的文件夹来进行照片中转。 注意:iPhone和Windows必须要连接到同一个局域网内! ● Windows设置 第一步,获取Windows电脑的IP地址。 具体操作是先打开“Windows设置-网络和Internet-网络和共…

c语言中返回整数值的长度

001、方法1 while循环[root@PC1 test]# ls test.c [root@PC1 test]# cat test.c ## 测试c程序 #include <stdio.h>int get_length(int a) {int length = 0;while(a > 0){length++;a /= 10;}return length; }int main(void) {int a;printf("a = "…

Blender 常用建模操作

常用简单介绍 挤出 快捷键:E 挤出是2个动作,生成加移动,所以右键撤销只能撤销移动内插 快捷键:I 内插仅是一个动作倒角 快捷键:Ctrl+B 滚动滚轮可以增加倒角的段数环切 快捷键:Ctrl+R 滚动滚轮可以增加倒角的段数挤出详细介绍 沿轴线挤出或者自动挤出挤出流形可以向内挤出…