使用此示例int[] scores = new int[5];
是否在声明int []或使用关键字new时留出了内存位置?
由于
答案 0 :(得分:3)
首先,我注意到你没有说明声明是本地的,类类型的字段还是结构类型的字段。我们假设它是一个本地的。
声明为变量得分分配存储位置,该位置包含引用。此存储位置可能是堆栈位置,堆位置或寄存器;由C#编译器和抖动共同决定哪个是最好的。
new[]
为数组分配内存。其结果是对数组的引用,该数组存储在与scores
相关联的位置。
答案 1 :(得分:1)
这个答案很多,堆栈/寄存器和GC堆都为此发挥作用。通过价值和参考也可以产生差异,而不是解释所有,这里是一个类似问题的链接。