换个花样玩C++(14) 全方位认识C++的左值,右值,左值引用,右值引用,亡值

news/2024/11/8 22:38:41/

        早期学习C语言的时候,认为可以被修改的左值是放在左边的,右边的则通常放置右值,后来转C++之后,随着C++不断地完善更新,发现有时候越来越捉摸不透C++了,右值已经与它最初的概念完全不一样了,越来越丰富。

       这篇文章我尽可能用一些浅显易懂的文字和简要的代码示例来解释下左值,右值,左值引用,右值引用和亡值的特点和用法。

        在C++11之前的版本中,一个值要么是右值,要么是左值。左值是指任何可能位于赋值=运算符左侧的值。右值是指允许位于赋值右侧但不位于左侧的任何值。

int i = 0;

所以在上面的例子中,i是一个左值,0是一个右值。像0=i这样的语句是不允许的。

不过C++11之后,就开始变得有点复杂,现在我们有左值(lvalue),右值(prvalue),亡值(xvalue)。

下面这个例子不是所有人都能回答正确它的输出,但我确信看了这篇文章后,你就一目了然了。

#include <iostream>
using namespace std; void func(int& i) {cout << "call func(int& i)" <<endl;
}void func(int&& i) {cout << "call func(int&& i)" << endl;
}
int main() {i

http://www.ppmy.cn/news/83213.html

相关文章

为何AI无法完全理解人类情感?GPT-4能否理解人类的情绪?

在科幻小说和电影里&#xff0c;我们经常看到超级AI人工智能机器人可以理解、感知甚至模拟人类的情感&#xff0c;但在现实世界中&#xff0c;我们距离这个目标还有一段相当长的距离&#xff0c;即使是强大的GPT-4甚至未来的GPT-5。过高夸大AI的体验和性能&#xff0c;往往并不…

Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated May 2023)

Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated May 2023) Windows 11, version 22H2 官方原版&#xff0c;2023 年 5 月 更新 请访问原文链接&#xff1a;https://sysin.org/blog/windows-11/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作…

android和flutter的混合项目切换系统语言时app重启启动问题

在 Android 项目中&#xff0c;使用 SharedPreferences 将当前设置的语言保存到本地。 在 Flutter 项目中&#xff0c;使用 flutter_localizations 库实现多语言支持。这个库支持自动检测当前系统的语言&#xff0c;并加载相应的翻译文件。 在 Android 的 Activity 中监听系统语…

设计模式 (四) 行为型设计模式系列

目录 1.职责链模式 2.命令模式 3.解释器模式 5.中介者模式 6.备忘录模式 7.观察者模式 8.状态模式 9.策略模式 10.模板方法模式 1.职责链模式 职责链模式将请求的发送者和接收者解耦&#xff0c;从而允许多个对象都有机会处理请求。这种模式通常用于处理请求的分发、…

吉时利 Keithley 2700数据采集器技术参数

概述&#xff1a; 每个 2700 系列系统均将精密测量、开关和控件集于一个紧凑集成的机箱中&#xff0c;适用于机架安装或台式应用。虽然所有三个系统的核心功能和编程是相同的&#xff0c;但各个主机都具有独特的功能。例如&#xff0c;2701 型具有 10/100BaseTX 以太网接口&am…

javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈

Array 是javascript中经常用到的数据类型。javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据。本文主要讨论javascript中数组的声明、转换、排序、合并、迭代等等基本操作。 创建数组和数组检测 1、使用Array构造函数 创建数组。 //创建…

第14届蓝桥杯省赛真题剖析-2023年5月7日Scratch编程初级组

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第135讲。 第14届蓝桥杯Scratch省赛真题&#xff0c;这是2023年5月7日举办的省赛&#xff0c;比赛仍然采取线上形式。试…

2023ACP世界大赛中国总决赛|让世界再多一个微笑

5月21日&#xff0c;正值第三十三次全国助残日&#xff0c;作为公益推行的一份子&#xff0c;恒利联创也呈现出了“仁者爱人”的文化内核。 恒利联创携手微笑明天慈善基金会合作同行&#xff0c;旨在推动公益&#xff0c;促进残疾人事业的全面发展。在前行的道路上&#xff0c…