当前位置: 代码迷 >> J2SE >> 大家帮小弟我看看这段代码是如何执行呢
  详细解决方案

大家帮小弟我看看这段代码是如何执行呢

热度:86   发布时间:2016-04-24 13:06:42.0
大家帮我看看这段代码是怎么执行呢?
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也会发生变化的。
  相关解决方案