C++中指针和引用的区别详解

      在C++的学习过程中,我们经常会遇到这样的困扰,指针和引用之间有怎样的区别和联系?在这里,我总结整理了一些指针和引用之间的区别和联系,以及引用的具体用法。

指针和引用在定义和性质上的区别

指针:我们都知道指针是一个存放地址的变量,其中它存放的地址和地址中的数据都是可以改变的(const int *const p=1 除外),是指向内存的一个存储单元

通常这样定义

int a=1;
int *p=&a;

我们定义了一个指针变量p,这个变量指向整形变量a的地址,p的值实际上是a的存储单元的地址

引用:引用其实是原变量的一个别名,就如同你叫张三,你妈会给你起一个小名叫狗蛋儿,张三和狗蛋儿其实是同一个人。在这里也一样引用和元变量实际上是一个东西。对引用操作与对变量直接操作完全一样

总结一下区别:

(1)引用是变量的一个别名,内部实现是只读指针

(2)引用只能在初始化的时候被赋值,其他的时候值不能改变,指针的值可以在任何的时候被改变

(3)引用不能为NULL,指针可以为NULL

(4)引用变量的内存单元保存的是引用的原变量的地址

(5)“sizeof  引用”=引用变量的大小,“sizeof 指针”=指针本身的大小

(6)引用可以取地址操作,返回的是被引用变量本身所在的内存单元地址

(7)引用使用在源代码级相当于普通的变量一样使用,做函数参数时,内部传递的实际是变量地址






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值