C++的引用 拷贝赋值和引用赋值

news2024/11/26 10:48:48

 

 💯 博客内容:C++的引用 拷贝赋值和引用赋值

😀 作  者:陈大大陈

🚀 个人简介:一个正在努力学技术的准前端,专注基础和实战分享 ,欢迎私信!

💖 欢迎大家:这里是CSDN,我总结知识和写笔记的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

目录

引用 

引用的基本概念

 拷贝赋值和引用赋值

引用 

引用的基本概念

引用是C++里面才有的概念。引用并不是定义了一个新的变量,它只是为一个现存变量起的别名。

例如:

int i=1;
int &k=i;

k就是i的一个别名。

定义引用需要注意的地方:

  1. 一旦初始化完成,引用会和初始值变量一直绑定在一起,无法重新绑定到另一个变量,因此引用必须初始化。
  2. 引用的类型要和与之绑定的变量相匹配。
  3. 引用只能绑定在变量上。
  4. 不能定义引用的引用。

来看几个错误的例子巩固一下:

int i = 2;
int& j;//错误,没有初始化
double& k = i;//错误,类型不一样
int& n = 3;//引用类型的初始值必须是一个变量,不能是字面值常量
int& o = i;//正确
int& p = o;//错误,不能定义引用的引用

但是可以在一条语句中定义多个引用。例如:

int i=2;
int &j=i,&k=i;

 拷贝赋值和引用赋值

其实就类似于传值和传址的区别。

下面来具体看两个代码:

#include<bits/stdc++.h>
using namespace std;
using gg = long long;
int main()
{
	gg i = 1;//定义了变量i,并用1初始化
	gg j = i;//将变量i的值拷贝赋值给j
	j = 2;
	cout << "i = " << i << ",j = " << j;
	return 0;
}

运行结果: 

#include<bits/stdc++.h>
using namespace std;
using gg = long long;
int main()
{
	gg i = 1;//定义了变量i,并用1初始化
	gg &j = i;//将变量i的值拷贝赋值给j
	j = 2;
	cout << "i = " << i << ",j = " << j;
	return 0;
}

运行结果: 

 第一个是拷贝赋值,第二个是引用赋值。

总之一句话,引用即别名。

引用并没有创建一个新的变量,只是对原有的变量起了一个新的名字。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

排名前十的开放式蓝牙耳机,哪个蓝牙耳机好一点?

当前耳机最大的受众群体就是年轻人&#xff0c;最怕自己吵到别人&#xff0c;而且更注重自己的舒适度&#xff0c;所以开放式耳机自从出现以来就深受年轻人喜爱&#xff0c;这种耳机用起来很方便&#xff0c;而且振动感不强&#xff0c;不用进入耳道&#xff0c;拥挤耳朵。开放…

C++图形开发(8):空格键控制小球起跳

文章目录 1.绘制小球2.按下空格让小球跳起来 我们今天来实现下按下空格键控制小球的起跳&#xff08;还没阅读之前文章的同学可以先去阅读一下&#xff1a;C图形开发专栏&#xff09; 1.绘制小球 首先&#xff0c;我们要绘制小球&#xff0c;这里就不细讲啦&#xff0c;之前的…

4.1 探索LyScript漏洞挖掘插件

在第一章中我们介绍了x64dbg这款强大的调试软件&#xff0c;通过该软件逆向工程师们可以手动完成对特定进程的漏洞挖掘及脱壳等操作&#xff0c;虽然x64dbg支持内置Script脚本执行模块&#xff0c;但脚本引擎通常来说是不够强大的&#xff0c;LyScript 插件的出现填补了这方面的…

2020~2030年 中国智能驾驶市场和技术趋势分析及主流芯片方案概述

分析及主流芯片方案概述智能驾驶已经成为中国用户买车时首选的配置之一&#xff0c;从L0到L2的整个产品布局&#xff0c;已经是车厂卖车时候的重点宣传点&#xff0c;智能驾驶不同于自动驾驶&#xff0c;无论是法律法规和产品定义都有着明确且清晰的定义。用户本身智能驾驶产品…

十个创业九个死,如何看待大学生创业?

虽然大家都在说“十个创业九个死”&#xff0c;尤其是前几年疫情的影响&#xff0c;很多创业和开店铺的都以失败告终&#xff0c;可是对于大学生来说&#xff0c;创业是很值得去做的一件事情。 熟悉我的朋友都知道&#xff0c;我是从事软件开发行业的&#xff0c;虽然前几年的…

实训笔记7.5

实训笔记7.5 7.5一、座右铭二、软件--软件工程2.1 需求分析2.2 系统设计2.2.1 概要设计2.2.2 数据库设计2.2.3 详细设计 2.3 编码开发/实现2.4 系统测试2.5 系统部署运行和维护 三、Java界面编程---仅作了解四、maven--自动化构建工具4.1 作用&#xff1a;4.2 maven如何帮助我们…

C#常见技能_结构

大家好&#xff0c;我是华山自控编程朱老师 前几天一个学员在学习C#与结构交互时,也不知道结构法可以用来做什么 。下面我们就详细讲讲C# 和结构交互的相关知识。 在C#编程中&#xff0c;结构是一种数据类型&#xff0c;它可以用于存储和组织相关数据&#xff0c;并提供对数据…

MySQL原理探索——24 MySQL是怎么保证主备一致的

在前面的文章中&#xff0c;我不止一次地和你提到了 binlog&#xff0c;大家知道 binlog 可以用来归档&#xff0c;也可以用来做主备同步&#xff0c;但它的内容是什么样的呢&#xff1f;为什么备库执行了 binlog 就可以跟主库保持一致了呢&#xff1f;今天我就正式地和你介绍一…

Selenium 中并行测试的重要性

目录 前言 并行测试 Selenium 中的并行测试 使用 TestNG 和 Selenium 进行并行测试 为什么我们需要在 Selenium 中进行并行测试&#xff1f; 更多测试范围 减少测试时间 成本效益 优化 CI/CD 流程 持续测试 实施并行测试 总结 前言 随着技术的进步&#xff0c;测试…

【JavaEE进阶】Spring核心与设计思想

1&#xff0c;Spring是什么&#xff1f; 我们通常所说的Spring指的是 Spring Framework&#xff08;Spring 框架&#xff09;&#xff0c;它是一个轻量级的 Java 开源框架&#xff0c;有着活跃庞⼤的社区。Spring 是为了解决企业应用开发的复杂性而创建的&#xff0c;不仅⽀持…

Linux网络抓包工具tcpdump

tcpdump 指令可列出经过指定网络界面的数据包文件头&#xff0c;可以将网络中传送的数据包的 “头” 完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤&#xff0c;并提供 and、or、not 等逻辑语句来帮助你摘取有用信息。   由于它需要将网络接口设置为…

青岛大学_王卓老师【数据结构与算法】Week04_11_案例分析与实现1_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c;另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础–…

STM32网络通信Web Server中SSI和CGI的应用

介绍 最近由于项目功能需要&#xff0c;开始研究STM32 WebServer通信以及SSI和CGI应用方法。项目结束后&#xff0c;主要总结浏览器与STM32之间进行通行&#xff0c;STM32作为服务器而浏览器做为客户端进行通行。 文件介绍 此部分的代码是根据ST官方的Web Server例程的基础上…

ubuntu配置pppoe的详细过程

虽然我的是22&#xff0c;其实这跟ubuntu的具体版本没什么关系 1 为什么要装pppoe联网&#xff1f; 联想主机装上ubuntu后发现wifi网络在启动后一段时间找不到&#xff0c;突然搜索不了&#xff0c;后来问导师才知道师妹之前就是用这个电脑&#xff0c;然后也碰到过。 所以不…

开发抖音短视频账号矩阵系统技术实现能解决一机一号实名认证问题?

一、短视频账号矩阵系统解决一机一号实名认证问题&#xff1f; 目前站在开发者角度来看问的比较多&#xff0c;做开发技术类矩阵saas工具&#xff0c;需要的多账号怎么解决&#xff0c;这需要从两个方面来做开发解决。 第一、从开发角度来看技术开发首先解决代理ip分发问题&a…

SPSS读取纯文本文件

纯文本文件是通用的一种格式文件&#xff0c;根据纯文本文件中数据的排序方式&#xff0c;可以将其分为自由格式和固定格式。自由格式文本文件的数据项之间必须有分隔符&#xff0c;固定格式数据项之间不需要分隔符。 1.以自由格式读取数据 &#xff08;1&#xff09;选择“文…

【嵌入式Qt开发入门】如何使用Qt进行绘制实时图表——QChart 图表

要想使用 Qt Charts&#xff0c;我们的 Qt 版本得使用 Qt 5.7 之后的版本。其实 Qt Charts 并不是 Qt 5.7 才有的&#xff0c;是在 Qt 5.7 以前只有商业版本的 Qt 才有 Qt Charts。我们能免费下载的 Qt 版本都是社区&#xff08;开源&#xff09;版本。 Qt Charts 很方便的绘制…

LTD233次升级|官网商城全球卖货•上传文章SEO关键字•创建下载中心

1、支持第三方支付平台Billing System&#xff0c;支持人民币结算外币商品 2、中文商城支持海外收货地址 3、文章批量上传支持传入 SEO关键字 4、拍卖应用支持查看竞价中的报价记录 5、新增下载文件模块 商城应用 1) 支持第三方支付平台 Billing System 在本次升级中&…

IM即时通讯+智能审批,助力企业效能提升

在企业运行中&#xff0c;大都会使用即时通讯去进行沟通交流&#xff0c;即传递文字信息、各类文档文件甚至是实时的语音和视频通话。而随着技术的不断深入&#xff0c;即时通讯软件越发成熟&#xff0c;它已经不再仅仅只是一个简单的聊天工具&#xff0c;而是包涵办公、协作、…

2023年测试之路,从功能测试进阶测试开发工程师,突破内卷...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 测试开发工程师到…