指针和引用的区别

本文详细阐述了指针和引用在C++中的区别,包括初始化、内存指向、sizeof运算符下的表现、空值检查及底层实现原理。指出引用在初始化后不能改变指向,而指针可以重新指向;引用的大小等同于其所绑定的内存,而指针的大小固定;引用不可为空,且在使用时不需空值检测。

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

指针和引用的区别:

  • 指针可以不用初始化,通过赋值可以指向任意同类型的内存,引用必须做初始化,而且一旦引用绑定一块内存后,就不可以在修改了
  • sizeof运算符下,指针的大小永远是4(x64为8),引用的大小是引用所绑定内存的大小
  • 指针可以为空,引用一定不为空
  • 使用指针时编译器一定会对其检测是否为空,空指针访问,而引用则不需要检测是否为空,因为不存在空的引用

其实指针和引用在底层汇编上是相同的,定义一个引用变量相当于定义了一个指针变量,然后将引用内存的地址写到指针中,当通过引用变量修改内存时,先访问了指针里面的地址,然后再在这个地址的内存里面写入修改的值。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值