所以我似乎无法弄清楚这一点。在以下代码中:
int[] array1 = { 86, 66, 76, 92, 95, 88 };
int[] array2 = new int[6];
array2 = array1;
当array2“复制”array1的值时,它是创建新的内存引用还是引用与array1中的值相同的内存索引?
Arrays
是引用类型,因此您分配的是相同的引用。
数组类型是从抽象基类型派生的引用类型
Array
。
如果要创建深层副本,可以使用Array.Copy
:
int[] array1 = { 86, 66, 76, 92, 95, 88 };
int[] array2 = new int[array1.Length];
Array.Copy(array1, array2, array1.Length);
数组是引用类型。您可以自己轻松检查
array2[1] = 2;
Console.WriteLine(array1[1]); // will print out 2
当您更改一个时,您会更改另一个,因为两者都指向(引用)相同的内存位置。
它引用同一个数组。因此,如果您更改 array1 中的值,它也会在 array2 中更改。