使用未分配的局部变量,如何初始化数组

时间:2015-11-13 15:18:21

标签: c#

我的代码有点问题:

using static System.Math;
using static System.Convert;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int[,] matrice;
            for (int i = 1; i <= 5; ++i)
            {
                for (int j = 1; j <= 4; ++j)
                {
                    if (i == j)
                    {
                        matrice[i, j] = ToInt32(Pow((-1), i)) + 1;
                    }
                    else if (i > j)
                    {
                        matrice[i, j] = ToInt32(Pow((-1), i + j));
                    }
                    else
                    {
                        matrice[i, j] = j;
                    }
                }
            }
        }
    }
}

我是否必须初始化阵列?我不知道该怎么做......

2 个答案:

答案 0 :(得分:1)

要初始化数组很简单,只需创建一个new数组:

int[,] matrice = new int[6,5];

另外,通过查看如何设置for循环,您希望标记编号为[1..N],其中N是上限。实际上,C#中的指示始终从零开始,因此当您声明一个数组时,指示来自[0..N-1]。

因此在示例中,我必须在每个上限中添加一个,这样您的代码就不会中断。更理想的选择是将for循环更改为0..N-1,这样就不会有空元素。

答案 1 :(得分:0)

是的,你必须初始化数组。初始化时,您要为阵列分配内存以存储数据