指针和引用的区别

1.从语法规则上讲,指针变量是存储某个实例的地址,引用是某个实例的别名。

2.程序为指针变量分配内存区域,而不为引用分配内存区域。

3.解引用是指针使用时要在前加“*”,引用可以直接使用。

4.引用在定义时就被初始化,之后无法改变。

5.指针变量的值可以发生改变。

6.指针变量的值可以为空,但没有空引用这个概念。

7.在计算sizeof时,指针变量得到的是指针变量的大小,引用得到的是变量的大小。

8.理论上指针的级数没有限制,但引用只有一级,即不存在引用的引用(int&& x=10 此处是右值引用)。

9.++引用和++指针的效果不一样,指针是指向下一个存储单元的地址,引用是对某一个实体的++。

相似的一个点:绝不允许把局部变量以引用或者指针的形式返回,要想正常返回就要变量的生存期不受函数的影响,设置为为静态或者全局变量

引用是指针的语法糖,再往深层次来讲实际上引用最终会变成指针,在汇编层次编译器看见引用会替换为*const,它是一个自身为常性的指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值