C#数组的定义,不定长的数组?

时间:2022-08-30 20:00:24

  首先,在这里我要说明的是,C#中,定义了数组,那么就必须为其指定长度,且他的长度确定,不能够更改。一旦定义一个数组,那么操作系统就在内存中给这个数组指定了一块内存,他是不支持动态分配存储空间的。能够动态分配存储空间的是集合。下面给出几个数组的定义;

 int[] number =new int[10];//定义了一个长度为10的int型数组,没有给元素复制,所有的元素默认值为0
 int[] number1 = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };//定义了一个长度为10的int型数组,且给元素赋初始值为1,2,3,4,5,6,7,8,9,10

在这里,我打印了一下number的值,给大家看看

for (int i = 0; i < number.Length; i++)
            {
                Console.WriteLine("数组number第{0}个元素的值为:{1}",i,number[i]);
            }

打印结果:

C#数组的定义,不定长的数组?

能够迷惑人的一个应该是这个:

int[] number2=new int[]{};//我以为这个是不定长的,特意输出了一下他的长度,你们看结果

C#数组的定义,不定长的数组?他的长度为0,我还给他赋了一下值,以为能增加长度,结果报一下错误

for (int i = 0; i < 10; i++)
            {
                number2[i] = i;
            }

C#数组的定义,不定长的数组?

还有一个应该是这个:int[] number3=null;

这个都没有初始化,在你初始化的时候照样要指定长度。

二维数组的定义:

 int[,] number4 = new int[,] { { 1, 2, 3 }, { 1, 2, 3 } };//定义一个2*3的数组,并为每一个元素赋初值
 int[,] number5 = new int[2, 3];//定义一个2*3的数组,没有为元素赋初值
 int[][] number6=new int[2][]{new int[]{1,2,3,4},new int[]{1,2,3,4}};//交错数组

  可能有些理解不正确,如有错误,请大家指出,我们共同讨论。