【问题标题】:difference between declaring arrays in c# [duplicate]在c#中声明数组的区别[重复]
【发布时间】: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++ 中一样?(或类似的语法)

标签: c# c++ .net arrays


【解决方案1】:

它的数组初始化语法

int[] arr1 = {1,2,3};
int[] arr2 = new int[3] { 1, 2, 3 };
int[] arr2 = new int[] { 1, 2, 3 };

它们是相同的。这种情况下……

int[] arr2 = new int[3] { 1, 2, 3 };

因为你声明了size[3]之后你必须匹配数量。

查看本教程http://msdn.microsoft.com/en-us/library/aa288453(v=vs.71).aspx

编辑:

int[] MyArray = new int[100];
            int[] MyOtherArray = MyArray;

这是你可以对第二个问题做的事情

【讨论】:

    猜你喜欢
    • 2011-02-23
    • 1970-01-01
    • 2014-06-26
    • 2017-11-01
    • 2011-10-05
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多