指针和引用的概念

本文详细解释了引用和指针的基本概念,包括它们的区别(如引用不占独立内存、可变目标与不可变目标,以及指针有自己的内存空间和地址操作),并通过实例说明了它们在函数参数传递中的作用。同时强调了指针的多级特性以及指针与引用的不同之处(如自加操作)。

一.引用

基本概念

利用引用并不会定义一个新的变量,而是为一个已经存在的变量起别名,引用是不具备实际的内存空间的,而是和它引用的变量共用同一块内存空间。

定义引用时,必须进行初始化,即为其赋予一个目标变量,使其成为目标变量的别名。 注意:一旦一个引用被定义了,那么便不可再次更改它的目标变量。

一个已经存在的变量可以同时具有多个别名,即可以被多个变量名引用。

引用在函数中的作用:

我们知道,当为函数传参时,实际上定义了新的变量,这个新变量只在函数中作用,如果在函数中修改该参数的值,那么实际上传递的参数并不会被修改。举个例子

在这里插入图片描述但是利用引用传递参数,在传参过程中实际执行了int& x = a;

此时再对x进行修改,本质上是对a进行了修改
在这里插入图片描述

二.指针

基本概念:

指针本质上是一个变量,也具备自己的内存空间(64位系统中占8个字节,32位占4个)

指针无论指向什么类型的变量,本质上都存放的是一个地址(整数类型) , 即在定义指针时,变量类型只是指明它指向什么类型的元素,如int* ptr = &a,指的就是ptr指向的是一个int类型的变量,即ptr存放的实际上是a这个int型变量的存储地址

使用方法

指针相当于一个指路牌,通过指针可以直接访问它存储的地址内的元素,可以通过*直接访问该地址,并访问或修改该地址存放的元素

注意

指针的自加与引用的自加不同,指针的自加是在本身存储的地址之上 加上一个 该数据类型所占的字节数,如一个指针指向了int型变量,那么当指针自加时会从当前地址+4个字节数; 而引用的自加是它的引用实体本身自加。

指针具有多级指针,即一个指针可以指向另一个指针,即二级指针,三级指针等…
引用不具备多级引用

指针变量可以为空指针nullptr
但引用不能为空,必须在定义引用时进行初始化

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值