【C++】引用 与 指针

本文详细介绍了C++中的引用和指针。引用是内存空间的别名,类似指针但更安全,无需解引用且初始化后不可变。指针则可为空,需判空操作,自增运算意义不同,且`sizeof`返回不同结果。两者在使用中各有特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 基础概念

1.1 变量

当申明一个变量的时候,计算机会将指定的一块内存变量名进行绑定;例如:下面的变量赋值语句,将5赋值到一块内存空间,这块内存空间的名字是x,这块内存的地址是0X001。

int val = 5;

变量在内存中的操作其实是需要经过2个步骤的:

  1. 找出与变量名相对应的内存地址。
  2. 根据找到的地址,取出该地址对应的内存空间里面的值进行操作。

1.2 指针

指针变量相对应的内存空间存储的值恰好是某块内存的地址

int Val = 5;
int *Ptr = &Val;

通过这个符号(*),指针获取指针指向的内存空间中的值称为解引用。空指针不能解引用。

1.3 引用

引用是一种特殊的指针,是某块内存空间的别名,在使用的时候会自动解引用,而不需要指针那样显式解引用

2. 指针与引用的区别

2.1 相同点

  • 都是地址的概念,指针指向一块内存,它的内容是某块内存空间的地址;而引用则是某块内存空间的别名。指针是一个实体,而引用只是一个别名

2.2 不同点

  • 引用定义时候必须初始化,指针可以为空
    所以,指针必须做判空操作,而引用则不必
  • 指针和引用的自增(++)运算意义不一样
  • 引用初始化后,不可变,指针可变。
  • “sizeof”
    "sizeof引用"得到的是所指向饿变量的大小, “sizeof指针” 得到的是指针本身的大小 (4个字节)
  • 安全性
    引用比指针更安全。由于不存在空引用,并且引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用,因此引用很安全。对于指针来说,它可以随时指向别的对象,并且可以不被初始化,或为NULL,所以不安全。

参考文章
https://blog.youkuaiyun.com/smartgps2008/article/details/90648015.
https://blog.youkuaiyun.com/smartgps2008/article/details/90648015.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值