关于指针作为函数参数的传递问题

在做计算机图形学的复合变换中,由于储存需要使用了二位数组作为矩阵,所以不可避免的用到了二维指针。可能是当时指针这里走马观花的学了一下,所以在写代码的时候也碰到了虽然简单但是一时搞不懂还是让人很抓狂的小问题。


首先将二维指针**r作为3*1的输出矩阵,在经过了功能函数的运算后r的值被更新。因为要做连续的变化,所以将r作为参数传递到连续变化的功能函数中去,问题也就由此而来。

当r作为参数直接传入函数后,在函数体里的计算是正确的,但在主函数里的值却没有改变

问题在于当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方法,也可以说传递指针是指针的值传递。因此在功能函数中对r作的更新是对r的副本进行的更新而不是对指针本身,指针本身的指向还保留着传入之前的原值。

解决的办法也很简单,将原来的值传递改为引用传递,就可以实现在功能函数里对原值进行更新。

例如func(double **r),改为func(double **&r)。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值