指针和引用的区别以及对引用传递的解释

指针和引用的区别:

  1. 指针是一个实体,是一个指向地址的值,引用只是一个别名;
  2. 指针在使用的时候需要解引用(*),引用不需要;
  3. 指针的值是可变的,引用的值一定要在初始化的时候被指定且不可变;
  4. 指针可以用const修饰,引用不行;
  5. 指针可以为空,引用不可以为空;
  6. sizeof指针得到的是指针的大小,sizeof引用得到的是引用指向的变量的大小;
  7. 指针++是指地址+1,引用++是引用指向的变量+1;
  8. 不存在指向空值的引用意味着使用引用的代码效率比使用指针高,因为在使用引用之前不需要测试它的合法性;
  9. 当重载某个操作符的时候,比如[],应该使用引用。

推荐参考文献:《c++引用与指针的区别(着重理解)

C++中可以分为值传递、指针传递、引用传递

下面详细解释一下什么叫做引用传递:

形参相当于实参的别名,在引用传递过程中,被调函数的形参虽然也作为局部变量在栈中开辟了内存空间,但是这是存放的是主调函数放进来的实参的地址,即通过栈中存放的地址访问主调函数中的实参变量。所以,被调函数对形参做的任何操作都影响了主调函数中的实参变量。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值