指针和引用

指针和引用的区别

(1) 指针是对象的地址,引用是对象的别名;

(2) 初始化:引用定义时必须初始化,没有指向空值的引用;指针可以指向空值NULL,可以在任何时候初始化;

(3) 指向:引用一旦初始化,就与对象绑定在一起,无法更改;指针可以指向不同的对象;

(4) 多级:指针可以有多级,但不存在多级引用(因为引用本身不是对象,所以不能定义引用的引用);

(5) sizeof结果:sizeof(引用)得到的是所指向对象的大小,sizeof(指针)得到的是指针本身的大小;

(6) ++:指针++是指针的地址自增,引用++是所指对象的值自增。

应用场景:

(1) 考虑到存在不指向任何对象的可能下,使用指针;需要在不同时刻指向不同的对象的情况下,使用指针;如果一旦指向一个对象就不会改变指向,则使用引用。

(2) 尽可能的使用引用,不得已时使用指针。

传指针和传引用

指针:变量、独立、可变、可空、替身、无类型检查;

引用:别名、依赖、不变、非空、本体、有类型检查。

指针传递本质上是值传递的方式,所传递的是一个地址值,即将实参的地址拷贝一份给形参,对形参指针的任何操作不会影响到实参指针。

引用传递是传递的实参的地址,对形参的任何操作都被处理成间接寻址,会影响到实参;传引用就相当于传指针的指针。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值