【发布时间】:2013-06-13 13:11:52
【问题描述】:
在学习C#时,我有以下疑问。由于数组在C#中声明时是引用类型,我认为它们一直是在堆上分配的。所以当我们按照以下方式声明数组时:
int[] arr1 = {1,2,3};
int[] arr2 = new int[3] { 1, 2, 3 };
它们之间有什么区别吗?
我们可以像在 C++ 中那样声明数组 int arr[100]; 吗?(不初始化也不使用 new 关键字)然后给它们赋值。
【问题讨论】:
-
看看这个Eric Lippert answer,以前有人问过
-
after this function returns you can still use arr2你到底在说什么? -
@bapusethi 在 C++ 中是正确的,而不是在 C# 中我认为
-
@bapusethi 数组是引用类型,所以不能在栈上分配。
-
@Pierre-LucPineault 谢谢,我得到了第一个问题的答案。我们可以声明 int arr[100];在 C# 中就像我们在 C++ 中一样?(或类似的语法)