Java中参数的值传递问题

我又犯病了,在做Leetcode No.88的时候竟然又犯了参数值传递的老毛病,写篇文章引以为戒

lc88题目给出的方法是带参无返回值的方法,要求是将合并后的数组存在nums1中
自然会开辟一个新的数组nums3用来临时存储nums1与nums2合并之后的结果
但是!!!为了偷懒逐个修改nums1中的值,我做了如下操作

nums1 = nums3;

然后提交答案,自然答案错误
我还心想把nums1指向nums3对应的地址空间,那么nums1存储的数据就和nums3里的数据一样了啊,为什么lc跑出来的结果没有变化。我甚至在Idea里打断点调试都还没意识到问题所在,因为我打的断点位置就是上面那句代码的位置…

好了说下原因,因为这里的方法传参传的是数组引用的拷贝,可以说它是引用传递,但是实际上还是值传递,传递的是nums1数组引用的拷贝值,在方法内部当然可以更改这个拷贝值,但是更改拷贝值并不会影响到原引用值!!!

能做的只能是通过这个数组引用,也就是指针吧,逐个修改对应存储空间里数据完成对nums1的修改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值