[音乐] 上一讲我们学习了一维数组,
那么我们这一讲来看一下多维数组,跟一维数组很相似, 多维数组只是可以在两个维度上或者多个维度上进行组合,
也就说,它有两个下标,或者多个下标,那么有两个下标的数组,我们称之为二维数组, 有三个下标的数组,我们称之为三维数组。
譬如像我们很容易想到的,一个平面上的点, 就可以用一个二维数组来存储。
那么, C# 是支持多维数组的,包括二维以上的数组, C# 至少支持到 32 位以上。
当然,我们一般用不到这么多维的数组,一般最多能用到二维数组或者三维数组都已经 很够用了。
那么,数组类型的维数,也称之为数组的 秩,它是数组的方法前面的逗号怎么样呢,个数加 1。
也就是说,我们如果要在写有多个维数组的时候, 那么数组的这样的一个声明方法是,数组类型名,方括号,
里面写上逗号,然后再是方括号,然后再是数组名。
那么当有一个逗号的时候,就表示它是有一个二维数组。
当有两个逗号的时候,表示它是一个三维数组。
那么对于有一个逗号 的时候,那么第一维,就是它的逗号前面的第一个数字,就是它第一维,譬如讲就是数组的行。
那么对于二维数组来讲,逗号后面的第二数字就是数组的列。
所以对于一个二维数组来讲,如果写了一个数组的大小是 m,
n 的话,那么就会形成一个 m 行 n 列的数组。
那么声明的方法跟一维数组的是基本是类似的, 只是在一,比一维数组多了一个逗号,
要写清楚每一个维度的大小。
那么在 这个幻灯片的最后一行的例子里面,我们看到了写的是 int[,]
array2=new int[4,2]。
那么, 同样的,如果对于一个二维数组要进行初始化的话,那么也
可以在声明的时候,给出所有二维元素的这样的一个 数值来进行初始化。
譬如讲在这样的一个例子里面,我们有一个三行
四列的这样的一个二维数组,那么它里面的每一个元素都是一个学生的成绩。
那么在进行初始化的时候的写法,和一维数组的相似, 也有三种这样的写法。
其中,第一种写法就是比较全的写法。
那么方法是 int[ ,] 表示声明了这样的一个二维的数组,下来是
score 是这个二维数组的名,等于 new int[3,5],三行五列,
特别注意的是,在后面给初值的时候, 需用第一层大括号要括住所有的初值。
在这个第一 层的大括号里面,那么又有很多若干个这样的一个大括号,
在每一个大括号里面,给出每一行的元素的值, 每一个元素值用逗号怎么样呢,分开。
而每一行之间,也 用逗号隔开,注意啊,这中间的那个大括号是不可省略的。
那么有些同学可能学习过这样的一个其他的语言,比如讲 C++, 在 C++
里面,中间的大括号是可以省略的;在 C# 里面, 每一行必须再要用一个大括号把它括起来。
那么同样的,对于这样的有初值的这样的一个二维数组的情况,
那么我们也可以根据初值的个数直接 推断这个二维数组的行跟列的值。
所以你也可以省略,在 new 后面的行跟列的值,同样的,也省略整个
new 而直接给出值,由编译器来推断其余的 信息。
这样的写法,都和我们前面讲的一维数组的写法 是一致的。
那么当然了,对于二维数组的数组元素 的引用,那么我们就需要有两个下标来引用这样的一个二维数组元素,
那么前面对于一维数组来讲,可能是一个 array i 就引用了,那么对于二维数组来讲,那么就需要两个下标,
分别表示数组的行和列,譬如讲 score[i,j] 等于什么呢,等于 90。
那么特别要在此注意的是,对于二维数组来讲,
当它声明的大小怎么样呢,是它的每一维的大小,而数组下标是从 0
开始的, 所以在使用每一个数组元素的时候,在引用数组元素的时候,
数组的下标是其大小的最大的下标,是其大小减 1。
当我们刚才声明了一个三行五列的数组的时候, 最,这个数组的最右下角的那个元素,也就是说行和列
最大的那个元素应该是,它的下标应该是 2 和 4, 而不是 3 和 5, 2 和 4。
那么关于二维数组我们做一个简单的介绍,下面看一下例题。
[空白音频]