大家帮我看看这段代码是怎么执行呢?
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
为什么是a1[0]=2呢?我实在搞不懂
------解决方案--------------------
a1和a2都是指向相同的区域的啊
你对a2进行a2[i]++; 这样的操作,实际上就是对数组所指的那片内存进行的操作,而不是地址,所以a1也会发生变化的。