Skip to content

2.4.3 二维数组

2.4.3 二维数组

我们之前讲了一维数组并了解了相关了基本概念。那么接下来对于二维数组的理解会简单很多

二维数组的创建

和一维数组类似,只不过我们要加一个"维度"

示例:创建一个三行四列的二维数组

int arr[3][4];

你可以理解为这个数组存在三行,每行可以存放四个元素

也可以理解为这是3个一维数组的捆绑,每个一维数组都能存储4个元素

二维数组的赋值

现在我们来讲讲两种赋值方式 第一种,也就是定义时赋值

//第一种写法
int arr[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};


//第二种写法
int arr[3][4] =
{
    {1,2,3,4},
    {5,6,7,8},
    {9,10,11,12}
};

第二种,也就是引用赋值 和一维数组也是类似的

下面我就直接讲怎么调用元素就可以了

二维数组的元素调用

我们用arr[i][j]来调用数组中的元素 其中i表示行数,j表示列数 或者说i表示第i个一维数组,j表示对应一维数组中第j个元素

实例:创建一个值为1-12的二维数组并遍历

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main()
{
    int arr[3][4];
    int value = 1;//表示所赋的值
    //两层for循环,第一层是 行/一维数组 的遍历
    for (int i = 0;i < 3;i++)
    {
        //在当前 行/一维数组 内,对 每个列/一维数组 进行遍历
        for (int j = 0;j < 4;j++)
        {
            arr[i][j] = value;
            value++;
        }
    }

    for (int i = 0;i < 3;i++)
    {
        for (int j = 0;j < 4;j++)
        {
            printf("%d\n", arr[i][j]);
        }
    }
    return 0;
}

应用场景

二维数组,最直观地,可以用来模拟矩阵(一个数学概念,没见过也没关系,开学之后学了线性代数就懂了)

当然,如果你想做一个迷你控制台窗口小游戏的话,二维数组用来模拟地图也是个不错的选择

比如我要做一个贪吃蛇 我们可以把地图存到二维数组里,然后用","来表示空,"O"来表示蛇头、"o"来表示蛇身......总之给一些符号赋予特殊含义 那么,这个二维数组就可以作为是游戏地图了!