A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    //方法一
    public static void swap(int[] arr,int x,int y)  
    {  
      int temp;
      temp=arr[x];
          arr[x]=arr[y];
          arr[y]=temp;

    }  
  //方法2
    public static void swap1(int x,int y)  
    {  
     // int temp;
     int temp=x;
             x=y;
             y=temp;

                 System.out.print("x="+x+";"+"y="+y);

    }  

方法2不行, 数组数据顺序没变,为什么

3 个回复

倒序浏览
方法2里面,如果传递两个参数swap1(5,6),运行到x=y时,6能赋值给5吗?
回复 使用道具 举报
方法一是将数组中储存的地址值调换了。你方法二是将数组中的数据先赋值给X和Y,他们只是自立门户的两个变量,这时X和Y已经跟数组没关系了,你怎么换都不影响数组的值
回复 使用道具 举报
第一个方法换的是数组元素的地址,第二个方法只是把数值传过来后改变了这两个数的前后顺序而已,和数组已经没有什么关系了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马