还不知道指针和引用的区别,一篇文章教会你

1、引用的概念

1.引用不是新定义一个变量,而是给已存在变量取了一个别名
2.编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间
比如:孙悟空,可以叫他孙悟空,也可以叫齐天大圣。本质他们就是一个人

在这里插入图片描述

2、引用的定义

我们如何定义一个引用呢?

类型& 引用变量名(对象名) = 引用实体

    int a = 100;
    int& ra = a;                    //定义引用类型
    printf("%p\n", &a);
    printf("%p\n", &ra);

在这里就是相当于一个实体取了两个名字分别为a和ra,并且在这个空间中不开辟新的空间
在这里插入图片描述

注意:引用类型必须和引用实体是同种类型的

3、引用的特性

  • 定义引用时必须给初始化
  • 没有空引用
  • 引用一旦引用一个实体,再不能引用其他实体了
  • 一个变量可以有多个引用(就相当于一个变量有好几个别名)
	int &a1;             //没有初始化
	int &a2 = nullptr;   //没有空引用

引用本身是一个变量,它不占用内存空间,它和指针不一样,它仅仅是一个别名

3、引用和指针的区别

在语法概念上引用就是一个别名,没有独立空间,和其引用实体共用同一块空间
在底层实现上引用实际是有空间的,因为引用是按照指针方式来实现的

引用的主要用途是:修饰函数的形参和返回值.
在C++语言中,函数的参数和返回值的传递方式有三种:值传递,指针传递和引用传递。引用具有指针的效率,又具有变量使用的方便性和直观性.

实际上引用可以做的事,指针都可以做,为什么还要引用呢?
引用体现了最小特权原则,即给予程序元素完成其功能的最小权限. 指针能够毫无约束的操作内存中的任何东西,尽管功能强大,但是非常危险.

引用指针
引用定义一个变量的别名储存一个变量的地址
引用必须初始化无要求
引用一个实体后不能再引用其他实体无要求
没有空引用有空指针
没有多级引用有多级指针
引用的权限小指针的权限比较大

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

opencv- CLAHE 有限对比适应性直方图均衡化

CLAHE(Contrast Limited Adaptive Histogram Equalization)是一种对比度有限的自适应直方图均衡化技术,它能够提高图像的对比度而又避免过度增强噪声。 在OpenCV中,cv2.createCLAHE() 函数用于创建CLAHE对象,然后可以…

Python 安装win32com失败

今天进行服务器迁移, 中间有用的python调用win32com组件让docx转换成pdf。不出意外的话出意外了,pip安装win32com的时候各种安装不上, 今天处理完问题之后,记录一下,与人方便与己方便。 在cmd上面,一开始…

配置静态 Eth-trunk

1、需求 1)交换网络中存在2个 VLAN – 10 和 20 2)每个VLAN的IP地址为:192.168.xx.0/24(xx为 vlan 号) 3)对交换机之间的链路进行链路捆绑,增加互联带宽 4)确保同 VLAN的 PC 之间互…

static和extern

1.extern extern 是⽤来声明外部符号的,如果⼀个全局的符号在A⽂件中定义的,在B⽂件中想使⽤,就可以使⽤ extern 进⾏声明,然后使⽤。 即在一个源文件中想要使用另一个源文件,即可通过这个extern来声明使用。 2.st…

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602显示用户自定义字符应用

基于基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602显示两行常规字符应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD1602简单介绍通过液晶显…

规则引擎Drools使用,0基础入门规则引擎Drools(一)基础入门

文章目录 系列文章索引一、规则引擎概述1、引出问题2、什么是规则引擎3、使用规则引擎的优势4、规则引擎应用场景 二、Drools介绍1、Drools概述2、Drools构成3、相关概念说明4、Drools执行过程5、KIE介绍 三、Drools入门案例1、业务场景说明2、开发实现 四、Drools基础语法1、规…

webpack plugin

1、基本写法及使用 这里用到 emit 钩子 及make 钩子,前者是串行后者是并行 /*** 1.webpack加载webpack.config.js中所有配置,此时就会new TestPlugin(),执行插件的constructor2.webpack创建compiler对象3.遍历所有plugins中插件&#xff0…

jQuery的学习(一篇文章齐全)

目录 Day29 jQuery 1、jQuery介绍 2、jQuery的选择器 2.1、直接查找 2.2、导航查找 3、jQuery的绑定事件 案例1:绑定取消事件 案例2:模拟事件触发 4、jQuery的操作标签 tab切换案例jQuery版本: 案例1: 案例2&#xff…

ios打包,证书获取

HBuilderX 打包ios界面: Bundle ID(AppID): 又称应用ID,是每一个ios应用的唯一标识,就像一个人的身份证号码; 每开发一个新应用,首先都需要先去创建一个Bundle ID Bundle ID 格式: 一般为&…

数据治理之考评指标类

正则表达式 [] 表述一个字符应该是什么样子 [abc] 表示一个字符可以是a\b\c[a-z] 表示所有小写[a-zA-Z]所有大小写[ a-zA-Z0-9_ ] 所有大小写字母及数字和下划线 -> \w[0-9] \d\s 空格. 表示任意字符 {} 表示有多少个这样的字符 [a-z]{1,10}最少有一个,最多有10…

虚拟机VMware+Ubuntu系统的自定义安装教程(详细图文教程)

VMware可以帮助你在一个操作系统的环境下安装和运行另一个操作系统,从而提高IT效率,降低运维成本,加快工作负载部署速度,提高应用性能,提高服务器可用性,消除服务器数量剧增情况和复杂性。 目录 一、VMwar…

python爬虫教程:selenium常用API用法和浏览器控制

文章目录 selenium apiwebdriver常用APIwebelement常用API 控制浏览器 selenium api selenium新版本(4.8.2)很多函数,包括元素定位、很多API方法均发生变化,本文记录以selenium4.8.2为准。 webdriver常用API 方法描述get(String url)访问目标url地址&…

Redis的持久化(新)

Redis中数据都保存在内存,但是内存中的数据变换很快,也很容易丢失,比如连接断开、宕机停机等等。而Redis提供的数据持久化机制有RDB(Redis DataBase)和AOF(Append Only File)。 1.RDB RDB是指在指定的时间间隔内将内存中的数据集快照写入到磁…

python-opencv划痕检测-续

python-opencv划痕检测-续 这次划痕检测,是上一次划痕检测的续集。 处理的图像如下: 这次划痕检测,我们经过如下几步: 第一步:读取灰度图像 第二步:进行均值滤波 第三步:进行图像差分 第四步&#xff1…

Web前端—移动Web第四天(媒体查询、Bootstrap、综合案例-alloyTeam)

版本说明 当前版本号[20231122]。 版本修改说明20231122初版 目录 文章目录 版本说明目录移动 Web 第五天01-媒体查询基本写法书写顺序案例-左侧隐藏媒体查询-完整写法关键词 / 逻辑操作符媒体类型媒体特性 媒体查询-外部CSS 02-Bootstrap简介使用步骤下载使用 栅格系统全局…

解决 requests 库中 verify 属性问题的方法

在使用 Python 的 requests 库进行网络请求时,我们常常需要确保通信的安全性,这涉及到验证服务器的 SSL/TLS 证书。 这个问题的背后是 requests 库的设计,为了解决这个问题,我们可以考虑修改 requests 库的源代码,以确…

webGL技术开发的软件类型

WebGL 是一种在浏览器中渲染 2D 和 3D 图形的 JavaScript API。通过 WebGL,你可以创建各种类型的软件项目,特别是那些需要强大图形渲染能力的项目。以下是一些你可以使用 WebGL 实现的软件项目类型,希望对大家有所帮助。北京木奇移动技术有限…

shell 条件语句

目录 测试 test测试文件的表达式 是否成立 格式 选项 比较整数数值 格式 选项 字符串比较 常用的测试操作符 格式 逻辑测试 格式 且 (全真才为真) 或 (一真即为真) 常见条件 双中括号 [[ expression ]] 用法 &…

虚拟主播解决方案

虚拟主播作为一种新兴的技术,正在逐渐改变我们的生活和工作方式。美摄科技,作为行业的领导者,致力于为企业提供一站式的虚拟主播技术解决方案,帮助企业实现数字化转型。 美摄科技的虚拟主播解决方案,是一种将文本内容…

软文如何打动用户,媒介盒子教你几招

软文写得好就能传递品牌形象,提高产品销量,但是软文想要打动用户,不是光靠闷头写就行,还需要一定的技巧,今天媒介盒子就来和大家聊聊,软文如何才能打动用户。 一、 明确目标受众需求 软文属于营销的一种形…
最新文章