前面我们学习了一位数组,在讲解到八皇后的问题时,我们也用到了二位数组,那么什么是二维数组呢?相信大家都应该学过二维矩阵如:
其实二维数组就是一个二维的矩阵,矩阵的行列对应的位置就是二维数组每个元素对应的下标位置
当然,和一维数组一样,它也是存储在堆内存的,并且每个元素都会进行初始化,所以由此可以看出,二维数组额本质就是一位数组,由几个不同的一位数组组成的,只不过所存储的元素是另一个一维数组而已,下面介绍二维数组的定义格式:
数据类型[][] 数组名=new int[row][col]; // int[ ] [ ] arr = new [3][4];
数据类型[][] 数组名=new int[][]{ {第1行},{第2行},{第3行}}; // int [ ] [ ] arr =new int [ ] [ ]{ {1,2,3,4},{1,2,3,4},{1,2,4,3}};
数据类型[][] 数组名={
{第1行},{第2行},{第3行}}; // int [ ] [ ] arr = { {1,2,3,4},{1,2,3,4},{1,2,4,3}};
下图是数组的存储结构,前面的数组代表有几行一位数组,后面的数字表示每个一位数组有多上列,然后每行的一维数组的首元素地址代表这个一维数组,然后将这个二维数组的第一个元素的地址给这个变量,就代表这个变量是一个二维数组。