文章目录
多维数组
数组可以表示线性一维的数据序列,而现实世界中存在着许多二维、三维,甚至高维数据序列。比如一个二维平面中每个单位区域的某种属性就是二维的序列(电脑屏幕每个像素的颜色),而三维空间每个单位区域的某种属性就是三维的序列(房间中每单位体积的空气密度)。为了表示这些多维的数据序列,我们就需要使用多维数组。
多维数组的创建与初始化
与一维数组类似,多维数组也可以通过初始化列表来初始化,这是形式上有区别。
多维数组的创建
#include<iostream>
using namespace std;
//多维数组的创建
int main()
{
int arr[3] [3] = {
{
0, 1, 2},
{
3, 4, 5 },
{
6, 7, 8 } };
int arr2[3] [3] = {
0, 1, 2, 3, 4, 5, 6, 7, 8 };
int arr3[2] [2] [2] = {
{
{
0, 1 },
{
2, 3 } },
{
{
4, 5 },
{
6, 7} } };
return 0;
}
示例展示了多维数组的初始化。其中前两个数组arr1,和arr 2用两种形式初始化了相同的两个3行3列的二维数组。在第一种方式中,我们为每一行都加了一个花括号,这样阅读起来也更清晰。arr3 是一个三维数组,可以把前两个数组看作平面的方阵,而把它看作三维的立方体,前后左右上下各有四个元素。
多维数组的遍历
多维数组需要使用多重循环来遍历。
多维数组的遍历
#include<iostream>
using namespace std;
//多维数组的遍历
int main()
{
int arr1[3][3] = {
{
0, 1, 2 },
{
3, 4, 5 },
{
6, 7, 8 } };
for ( int i = 0;i < 3; i++)
{
for ( int j = 0; j < 3; j++)
{
cout << arr1[i][j] << " ";
}
cout << endl;
}
return 0;
}
运行结果:
可以看到,读取二维数组的元素需要两个计数器来作为下标。内循环遍历的是数组的第二维,也就是同一行中的元素;而外循环遍历的是数组的第一维。
多维数组与数组
二维数组的本质其实是一个数组的数组。int arr[3]是元素为int 而大小为3 的数组,而intarr [3][3]是元素为int arr[3]的类型而大小为3的数组。
多维数组的理解
#include<iostream>
using namespace std;
//多维数组的理解
int main()
{
int arr1[3][3] = {
{
0, 1, 2 },
{
3, 4, 5 },
{
6, 7, 8 } };
cout << "arr1: " << arr1 << endl;
for ( int i = 0 ; i < 3 ; i++ )
{
cout << "arr1[" << i << "]:" << arr1[i] << endl;
for ( int j = 0 ; j < 3 ; j++ )
{
cout << arr1[i][j] << " ";
}
cout << endl;
}
return 0 ;
}
运行结果
打印了数组名和子数组名所代表的地址
二维数组就相当于一个元素比较大的普通数组,这个数组的每个元素就是子数组名代表的一个数组。此外,子数组名也可以像数组那样当做地址赋值给指针。
如果本文对你有帮助,请点赞支持一下~