gpt4 book ai didi

Java逻辑困惑

转载 作者:行者123 更新时间:2023-12-01 07:07:24 26 4
gpt4 key购买 nike

有人可以向我解释为什么这段代码打印出“abeb”而不是 abcb 吗?我理解这是因为您从 list1 引用了 list2 所以更改 list2 也会更改 list1 但我不太完全理解这一点。

char [] list1 = {'a','b','c','d'};    
char [] list2 = list1;
list2[2] = 'e';
list1[3] = list2[1]
for (char a: list1)
out.print(a)`

为什么这段代码中没有应用相同的逻辑(我理解的逻辑)?它打印出 x 作为“5”,我从上面的代码中理解它应该是 7?

int x = 5;
int y = x;
y += 2;
out.print(x);

最佳答案

list2[2] = 'e' 将新值“e”分配给 list2 数组的第三个元素。因此它修改了数组。 list2list1 是两个包含对同一数组的引用的变量。

之前:

list1 --> [a, b, c, d]
^
|
list2 ---/

之后:

list1 --> [a, b, e, d]
^
|
list2 ---/

y += 2 增加变量 y 的值,该值与变量 x 的值不同:

之前:

x  --> 5
y --> 5

之后:

x --> 5
y --> 7

关于Java逻辑困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21075355/

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