gpt4 book ai didi

java - 数组操作 : adding elements

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

我是编程新手,刚学数组。但是,在其中一个测验问题中,我无法弄清楚为什么我的答案是错误的。我试图解释我的想法。

问题是:

    int[] b = { 1, 2, 3 };
int[] c = b;
c[0] += b[2];
c[1] += b[1];
c[2] += b[0];
System.out.println(c[0] + c[1] + c[2]);

我的想法是虽然array是引用类型,但是int[] c = b还是可以当作

int [] c = { 1, 2, 3 }; // the same as int [] b

c[0] += b[2] means c[0] = c[0] + b[2] = 1 + 3 = 4
c[1] += b[1] means c[1] = c[1] + b[1] = 2 + 2 = 4
c[2] += b[0] means c[2] = c[2] + b[0] = 3 + 1 = 4

所以我认为输出是12。然而,答案是15。

我很抱歉问了这么一个基本的问题,但我想知道是否有人可以帮助我理解如何得出 15。非常感谢!

最佳答案

实际上 java 通过引用而不是值来复制数组。所以在你的代码的最后一行,b[0] 被更改为 4 所以

c[2] += b[0] means c[2] = c[2] + b[0] = 3 + 4 = 7

所以你的输出是 15。如果你想复制一个没有引用的数组,你可以这样做:

int[] c = Arrays.copyOf(b, b.length);

现在,您的输出应该是 12。

关于java - 数组操作 : adding elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71279251/

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