2021-11-05

字符串作为方法入参不能改变值,字符数组可改

仅供自己以后参考,正确性待以后考察
在这里插入图片描述

  1. 字符串作为形参传入方法无法改变其值
    原因
    进行的是值传递。方法外定义的是全局的str,值为hello。若使用方法对其值进行改变,即方法change中的语句str=“world”,编译器执行该语句时,会在方法中保留一个全局str的副本,不对其做任何改变。之后开辟一个空间用来存放world,并且由一个局部的str指向它。

    注意,此时有一个全局的str指向hello。还有一个局部的str,即方法体内的str指向world。二者指向不同,另外,方法中还有一个编译器生成的全局str的副本,指向的是hello。

    由于方法没有返回值,局部的str将无法返回到方法外进行输出,而方法外的输出仍旧是全局的str即hello,所以值未改变。

另一情况
在这里插入图片描述
可在方法中加入输出语句system.out.println(str)用来查看局部的str值,经运行发现其值为world,但是却无法返回。想要正确修改,即将局部的str值返回给全局的str值,可加入return语句进行返回。
总结
第一种情况相当于改变传进来的形参值,所以失败;第二种情况相当于利用传进来的形参来改变全局的值,所以成功。

  1. 程序里的ch[0]有了改变,原因是数组进行的是引用传递,传递的应该是地址,待考察
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值