有人可以向我解释为什么这个代码打印出"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)`
Run Code Online (Sandbox Code Playgroud)
为什么在此代码中没有应用相同的逻辑(我理解的逻辑)?它打印出x作为"5"是从我从上面的代码中理解它应该是7?
int x = 5;
int y = x;
y += 2;
out.print(x);
Run Code Online (Sandbox Code Playgroud)
list2[2] = 'e'将新值'e'分配给list2数组的第三个元素.因此它修改了数组.list2并且list1是包含对同一数组的引用的两个变量.
之前:
list1 --> [a, b, c, d]
^
|
list2 ---/
Run Code Online (Sandbox Code Playgroud)
后:
list1 --> [a, b, e, d]
^
|
list2 ---/
Run Code Online (Sandbox Code Playgroud)
y += 2递增变量y的值,该值与变量的值不同x:
之前:
x --> 5
y --> 5
Run Code Online (Sandbox Code Playgroud)
后:
x --> 5
y --> 7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |