一.前言
嗨嗨嗨,大家好!我们又见面了。上次我们分享了关于一维数组的知识这次我们分享二维数组的知识,废话不多说,让我们开始今天的分享吧。
二.正文
1.二维数组
1.1二维数组的概念
前面学习的数组被称为一维数组,数组的元素都是内置类型的,如果我们把一维数组作为数组的元素,这时候就是二维数组,二维数组作为数组元素的数组被称为三维数组,二维数组以上的数组被统称为多维数组。
1.2二维数组的创建
二维数组的创建其实和一维数组差不多,只不过多了一个行与列的差别而已,这到了本文后面分享二维数组的储存有介绍。
如一维数组一样type是数组类型。
arr为数组的命名,有意义即可。
常量值1是表示数组的行数,常量值2表示数组的列数(或者可以说是一行中有几个数组元素)。
1.3二维数组的初始化
(i)日常数组初始化
话不多说直接上代码:
(ii)按照行初始化
二维数组还可以按照行初始化,意思就是可以指定每一行的数组元素大小与个数,公主王子亲看vcr:
值得注意的是:数组在按照行初始化的时候,所在行的数组元素也必须使用{}括起来,如上面代码中的{ {1,2},{3,4},{5,6} }一样。
(iii)省略行初始化
一维数组在初始化的时候可以这样初始化int arr[]={1,2,3,4,5,6,7,8,9,10};即使[ ]中不写数组大小,计算机也会自动为你匹配空间,数组大小自动为10.同理二维数组也是一样:
2.二维数组的使用
2.1二维数组的下标
在一维数组的学习中我们已经了解到数组是有下标的,下标就相当于数组元素的编号。一维数组的下标是从0开始的,二维数组也不例外,同样二维数组的下标也是从0开始的。
例子:int arr[3][5]={1,2,3,4,5, 2,3,4,5,6, 3,4,5,6,7};数组元素6的下标是[1][4]。
那么如果我们想要引用数组元素6,该如何实现呢?我们可以这样写arr[1][4]。
2.2二维数组的输出
整个二维数组的输出需要借助于双重循环,废话不多数,公主王子们请看VCR:
一些小伙伴可能对双重循环有点疑惑,双重循环分为外循环和内循环。当内循环循环完一圈后,外循环一次,然后再进入内循环循环完一圈,再到外循环依次往复,直到外循环循环完一圈。
就比如上面图中代码所示,i=0;进入内循环,内循环循环完一圈,j依次从0加到5退出内循环进入到外循环中此时数组的第一行已经打印完成。然后i++,i从0加到1,再进入内循环,j又依次从0加到5退出内循环进入到外循环,此时数组已经完成第二行的打印~同理最后三行(0 1 2)数组都打印完成。
2.3二维数组的输入
二维数组的输入也是需要借助双重循环的,公主王子们请看vcr:
3.二维数组在内存中的储存
我们可以如同在探究一维数组在内存中的储存的操作一样,先将各个数组元素的地址打印出来观看有什么规律。
从输出的结果来看,每一行内部的元素都是相邻的,地址之间相差四个字节,跨行位置处的两个元素(如arr[0][4]和arr[1][0])之间也是差4个字节,所以二维数组中的每个元素都是连续存放的。
如下图所示:
二维数组的每一行在内存中连续存放(咳咳我知道我画的有点丑,大家凑合着看吧)
三.总结
知识分享到这就结束楼,感谢大家的观看。公主王子们我们下期再见喽,拜拜~