gpt4 book ai didi

java - java 中奇怪的数组行为。具有单个 int 的数组的行为与该 int 不在数组中的同一程序的行为不同

转载 作者:行者123 更新时间:2023-12-01 22:05:05 25 4
gpt4 key购买 nike

为什么以下两个程序 A 和 B 之间存在差异。它们运行起来不应该相同吗?由于某种原因,数组情况下的转换器正在更改输入数组的原始值。

程序A:

public static void changer(int tester) {
tester = tester*2;
}

public static void main() {

int value = 1;
out.println(value);
changer(value);
out.println(value);
}

这给了我输出:

1
1

方案B:

public static void changer(int[] tester) {
tester[0] = tester[0]*2;
}

public static void main(){

int[] value = {1};
out.println(value[0]);
changer(value);
out.println(value[0]);


}

这给了我输出:

1
2

最佳答案

更改被调用方法中的值不会更改调用方法中的值。在程序 B 中,您没有更改数组,而是更改数组内的值,并且该值在调用方法中可见。

关于java - java 中奇怪的数组行为。具有单个 int 的数组的行为与该 int 不在数组中的同一程序的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32939114/

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