Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
使用这个例子int[] scores = new int[5];
int[] scores = new int[5];
内存位置是在声明 int[] 时还是在使用关键字 new 时预留的?
谢谢
首先,我注意到您没有说声明是本地的、类类型的字段还是结构类型的字段。我们假设它是本地的。
该声明为变量score分配了一个存储位置,它包含一个引用。这个存储位置可能是堆栈位置、堆位置或寄存器;由 C# 编译器和抖动共同决定哪个是最好的。
为new[]数组分配内存。其结果是对数组的引用,该数组存储在与 关联的位置scores。
new[]
scores
这个答案有很多,堆栈/寄存器和GC堆都为此发挥作用。通过价值和参考也会有所作为,而不是全部解释,这里有一个类似问题的链接。
变量初始化