什么情况下使用指针的引用(指针)

在函数调用时

用指针或者引用做参数,表示把变量的地址传递给子函数,但是子函数只能修改指针所指变量的值,并不能修改指针的指向。

如果想用修改指针的指向,就要用指针的指针,或者指针的引用。


大部分情况下,用指针和引用做参数,只是想要修改指针所指变量的值,并没有想修改指针的指向。

但是如果指针所指的这块内存在调用子函数结束之后发生了改变,那就要用指针的引用或者指针的指针。

下面举几个典型的例子:

例子一:

链表做参数时,其实就是头结点的指针,在遍历,查找这种操作做子函数时,链表不会发生改变,那就用头结点的指针做参数就可以了。

但是在增加,修改,删除这种操作时,链表会发生改变,这就表示头结点指针所指的这块内存会发生改变,也就是指针的指向可能会发生改变,这种情况下就要头指针的引用。

在二叉树和图的子函数调用中是同样的道理,如果子函数会修改二叉树和图,那就要用指针的引用。

那块内存在主函数已经申请好了,但是在子函数中大小变了。

例子二:

在主函数中定义了一个指针,要将这个指针做参数传给子函数,在子函数中开辟两兆内存,这个时候一定要用指针的引用。

因为指针所指的这块内存发生了改变,或者说指针的指向发生了改变。

主函数中只是定义了一个指针,并没有真正开辟内存,子函数中才真正开辟内存,指针指向哪才明确下来。


如果你有时候不清楚该不该用变量的引用做参数,那就记住一点:

用指针的引用总是没有问题的。因为传递变量的地址比传递变量本身总是改的快。

  • 25
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值