gpt4 book ai didi

java - 有些参数可以在方法中更改,但有些参数不能在 java 中更改

转载 作者:行者123 更新时间:2023-12-02 10:54:26 26 4
gpt4 key购买 nike

public class test {
public static void main(String[] args) {
boolean flag=false;
char[] c=new char[5];
c[0]='e';
read(flag, c);

System.out.println(c[0]);
System.out.println(flag);
}

public static void read(boolean flag, char[] c){
flag=true;
c[0]='a';
}
}

在上面的代码中,我发现一个有趣的问题:char[] c已更改并正确打印结果,但 boolean 标志没有更改!我不知道这是怎么发生的?现在,我也想更改标志,该怎么做?感谢您的帮助!

最佳答案

boolean 值按值传递。如果您在 read 方法中更改它,则只会更改本地副本,而不会更改外部值。

但是,对 c引用是按值传递的,从而有效地使 c 引用的数组按引用传递。因此,在这里更改 c 的元素确实会影响外部数组。

关于java - 有些参数可以在方法中更改,但有些参数不能在 java 中更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15422562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com