关于数组赋值问题,为什么数组A赋值给数组B后,数组B改变,A也跟着改变

如题,代码如下:

package hello;

public class haha{

 public static void main(String args[]){

int[] a1 = { 1, 2, 3, 4, 5 };  

int[] a2;        

a2 = a1;       

for(int i = 0; i < a2.length; i++)  

a2[i]++;

for(int i = 0; i < a1.length; i++)         

System.out.println( "a1[" + i + "] = " + a1[i]);

      }


}

输出

a1[0] = 2

a1[1] = 3

a1[2] = 4

a1[3] = 5

a1[4] = 6


t峰01
浏览 2834回答 4
4回答

计量赵子龙

a2 = a1;该语句实则是把a1的地址给了a2,所以给a2赋值相当于对a1也操作了;java中取消了指针的概念,但是在内存中归根结底,两个数组的地址相同了。如果你想赋值单数还不改变量的话,可以创建一个临时数组。如有疑问可追问,如满意望采纳,谢谢。

相忘于江湖494

打个比方数值就是苹果,你只是把苹果地址给了B,而不是给B有创造了苹果,所以只要苹果动了,所以A和B都会改变

一条小咸鱼

import java.util.Arrays; public class HelloWorld {     public static void main(String[] args) {         int[] arry1 = { 1, 2, 3 };         int[] arry2 = arry1.clone();         arry2[2] = 1;         System.out.println(Arrays.toString(arry1));         System.out.println(Arrays.toString(arry2));     } }

赵志广

只是把引用给了B,他们对应的还是一个数组
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java