以下代码更改array变量中的元素。我期待着改变,sortedArray但它同时也改变了。我从来没有array在任何等号的左侧。我从未设置array为任何值,但当我观看时,我在调试器中看到它的变化。
static int[] SortArray(int[] array)
{
int[] sortedArray = array;
while (!IsSorted(sortedArray))
{
for (int i = 0; i < array.Length-1; i++)
{
if( sortedArray[i] > sortedArray[i + 1])
{
sortedArray[i] = array[i + 1];
sortedArray[i + 1] = array[i];
}
}
}
return sortedArray;
}
Run Code Online (Sandbox Code Playgroud)
SortArray调用该方法之前,array为 (8, 3, 1, 6, 4),方法完成后,array为 (1, 1, 1, 4, 4)。