0

使用这个例子int[] scores = new int[5];

内存位置是在声明 int[] 时还是在使用关键字 new 时预留的?

谢谢

4

2 回答 2

3

首先,我注意到您没有说声明是本地的、类类型的字段还是结构类型的字段。我们假设它是本地的。

该声明为变量score分配了一个存储位置,它包含一个引用。这个存储位置可能是堆栈位置、堆位置或寄存器;由 C# 编译器和抖动共同决定哪个是最好的。

new[]数组分配内存。其结果是对数组的引用,该数组存储在与 关联的位置scores

于 2013-11-12T16:45:41.020 回答
1

这个答案有很多,堆栈/寄存器和GC堆都为此发挥作用。通过价值和参考也会有所作为,而不是全部解释,这里有一个类似问题的链接。

变量初始化

于 2013-11-12T16:19:32.627 回答