error:指针作为函数参数错误总结

我们知道,函数传递参数是“拷贝”,不是把原值传进去,除非参数是数组这样的“地址”。

当把指针作为函数参数传递进去,想当然的以为在函数里面修改了指针,在函数外面也保留指针的改变。

实际上,调用函数结束之后,指针的指向不会改变。

所以可以把新的指针指向作为返回值,通过赋值改变原来的指针指向。达到修改指针的目的。


2021-6-12补充

在用C写stack和list时候都遇到的问题。

已经知道“当指针作为函数参数传递进去时候,在函数里面修改了指针,函数外面指针指向不会改变,需要利用返回值来改变原指针指向”。但是上一次没有写清楚自己真正遇到的问题。

当我想要改变链式结构时候,采用了move函数计算算法允许的下一步位置,然后拟用int类型存放了步数,但是实际上我们需要保证函数运行的时候指针始终指向需要的位置(Head or tail),所以,嵌套函数时候,我们始终需要保证返回值都是指针,才能在main里面指针的位置正常。所以move里面调用了改变指向的函数,move返回值也就需要是指针。

也就是说,涉及这种链表的指针问题的时候,嵌套函数都应该满足返回值是指针。并且每一次调用都是“指针=函数(指针)”的形式,每一层都应该这样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值