以下为课程中的某个函数,教授说可以真正实现交换数组中两个位置的值,但我有所不解:
private void swapElementsHappy(int[] arr, int pos1,int pos2)
{
int temp=arr[pos1];
arr[pos1]=arr[pos2];
arr[pos2]=temp;
}他解释说,第一个参数是传入整个数组,这样就能得到这个数组的引用。但是我想这样比较麻烦。有没有更简洁的写法。比如:
private void swapElementsHappy(ref int arr[pos1],ref int arr[pos2])

解决方案 »

  1.   

    你那种方法更麻烦 pos1 pos2还要再定义!!
      

  2.   

    如果int[] arr是一个全局变量的话,你可以省略int[] arr这个参数,这样就变成了private void swapElementsHappy(int pos1,int pos2)
    {
    int temp=arr[pos1];
    arr[pos1]=arr[pos2];
    arr[pos2]=temp;
    }不过道理是一样的.
      

  3.   

    ref int arr[pos1],ref int arr[pos2]  在C#里有,但是在JAVA中没有见到过
      

  4.   

    建议你多看看基础。这怎么会是算法!!!这是很明显的值传递和址传递的区别的Sample