对C#数组声明方式的理解

【最重要的两个条件】

在声明数组时有两个非常重要的条件,只有满足这两个条件,声明出来的数组才能保证在程序运行的时候不出错,这两个条件是:

  • 声明的数组要有初始值
  • 声明的数组要有存储的位置(即有分配内存给数组存储数据)

【数组的声明方式】

【方式一】

 int[] array;//声明数组
 array=new int[3];//数组实例化

声明的数组要有初始值:虽然我们没有赋初始值,但有默认的初始值0

声明的数组要有存储的位置:new关键字的作用是让CLR为数组分配内存,所以我们在声明数组时基本上要有new关键字。数字3也很重要,其告诉CLR我们需要多大的内存空间。如果没有数字3,那么CLR就不知道要分配多少空间,程序就会报错。

(你可以试一试把这两行代码赋值到VS中,去掉数字3,看是不是会报错)

【方式二】

 int[] array;
 array = new int[3] {5,6,7};

我们也可以在实例化的时候直接赋值。这时我们也可以将数字3去掉,因为这时我们已经赋了3个值,CLR已经知道需要多大的空间。

(注解:实例化的时候是赋值了的,赋的值时默认的初始值;这里所说的赋值是指我们自己指定值而不用默认的初始值。)

【方式三】

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

我们可以在声明数组的同时实例化、赋值

【方式四】

int[] array= {1,2,3};

进一步,我们可以将new关键字省略,代码变得更简单。

推荐用方式三来声明数组

【二维数组、多维数组的声明】

            int[,] X = new int[3,3];//声明3x3的二维数组并实例化
            int[,] Y = new int[2,3] {{1, 2,3}, {4, 5,6}};//声明2x3的二维数组并实例化、赋值
            int[,,] Z = new int[2, 3, 4];//声明2x3x4的三维数组并实例化
            int[,,] M = new int[2, 2, 2]//声明2x2x2的三维数组并实例化、赋值
            {
                {{1, 2}, {3, 4}}, {{5, 6}, {7, 8}},
            };

【拓展】

    int[] X;
    int[] Y;
    Y = X;

上面的代码会报错,这里只声明了数组X、Y,既没有实例化、也没有赋值,所以在代码“Y=X”中进行赋值操作时会报错,错误为“使用了未赋值的X”。

若X实例化了,或者赋值了,就不会报错(下面的代码是正确的)

            int[] X = new int[3];
            //int[] X = new int[3] {5,6,7};
            int[] Y;
            Y = X;

【参考】

[1]《C#本质论5.0》

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值