在 数组—植物大战僵尸 中我们玩了一下一维数组,这节再搞一下二维数组。
二维数组
- 先抛开二维数组不谈,和我看看下图这张小学二年级的班级座位表,大卫 坐在哪里?很明显第三行第二列。那 舒平 坐在哪里?也是很明显第二行第五列。这么难的问题你能看懂,恭喜你,二维数组你会了一半。
- 作为班主任的我,心情不爽,举行月考,成绩如下
- 现在我想把成绩用 C语言 的方式保存起来,怎么弄?
int 莫莉 =78; int 沐建峰 =67; int 赵益勤 = 89 ...
,打完手也得断。换种方式,在 数组—植物大战僵尸 中提到过,对于这种一次性存放多个数据的情况,数组就是一个不错的选择,那用数组搞它,但是这样搞完之后,那个是那个的成绩,你知道吗?反正老衲看着有点混。 - 这个时候还是二维数组靠得住,何为二维?简单介绍,有行有列,刚好对应座位表。一维度数组定义方式:
数据类型 变量名[数组长度] = { 元素0,元素1,元素2... };
,那么二维数组定义方式:数据类型 变量名[数组行长度][数组列长度] = { { 元素1,元素2,元素3... },{ 元素4,元素5,元素6... },{ 元素7,元素8,元素9... } ... };
。那么再谈谈下标,元素1的下标是什么?看他位置在第一组的第一个位置,按道理说就是 (1,1) ,由于数组从 0 开始,所以它对应的是 (0,0) 。同理,看看元素5呗,它在第二组的第二个,道理说就是 (2,2) ,由于数组从 0 开始,所以它对应的是 (1,1) …,至于输出那就是两个 for 循环嵌套。知道了怎么二维数组怎么定义,那就把上面的班级座位表定义后,输出。 - 这样输出,确实要比一维数组更加的直观,比如:第一行第三列的孩子考了90,第三行第三列的孩子考了89…一目了然。
总结
二维数组就是数组套数组,一个大数组里面放了好几个小数组,定义的方式:数据类型 变量名[数组行长度][数组列长度] = { { 元素1,元素2,元素3... },{ 元素4,元素5,元素6... },{ 元素7,元素8,元素9... } ... };
,数组行长度一般就是确定大数组里有几个小数组,数组列长度一般就是确定小数组里有几个元素。至于输出,那就是 for 循环加 for 循环 ,一个循环行,一个循环列。