您的位置:

C++二维数组定义方法

一、二维数组的基本概念

在C++中,数组是一组相同类型的变量的集合。而二维数组则是由多个数组组成的数据结构,它的每个元素都有两个下标,对应于行和列。一个二维数组可以看作是一个表格,它的行和列确定了表格的大小。

在使用二维数组之前,我们需要先定义它。在定义二维数组时需要指定它的类型、名称、行数和列数。如下代码所示,定义一个3行4列的二维数组:


int arr[3][4];

二、初始化方式

和一维数组一样,二维数组也可以使用各种初始化方式。下面是几种通用的初始化方式:

1. 直接初始化

直接在定义二维数组时为每个元素赋值,可以使用花括号{}将其括起来,各个元素之间用逗号分隔。


int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};

2. 声明并初始化

可以先声明二维数组,然后再为其赋值。


int arr[2][3];
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[1][0] = 4;
arr[1][1] = 5;
arr[1][2] = 6;

3. 部分初始化

在定义二维数组时可以为部分元素指定初始值,未指定的元素自动初始化为0。


int arr[2][3] = {{1, 2}, {4}};

三、访问二维数组元素

和一维数组一样,访问二维数组元素也需要使用下标。下标用两个方括号来表示,第一个方括号代表行,第二个方括号代表列。例如,要访问二维数组中第2行第3列的元素,可以使用以下代码:


int arr[3][4];
...
arr[1][2] = 10;

四、二维数组的应用

在实际开发中,二维数组可以用于存储和处理各种数据,例如矩阵、图像等。

下面是一个例子,使用二维数组存储一个3行4列的矩阵,并计算该矩阵的转置矩阵:


#include <iostream>

using namespace std;

#define ROW 3
#define COL 4

int main()
{
    int matrix[ROW][COL] = {{1, 2, 3, 4},
                            {5, 6, 7, 8},
                            {9, 10, 11, 12}};

    int transpose[COL][ROW];

    // 计算转置矩阵
    for(int i = 0; i < ROW; i++)
    {
        for(int j = 0; j < COL; j++)
        {
            transpose[j][i] = matrix[i][j];
        }
    }

    // 打印矩阵和转置矩阵
    for(int i = 0; i < ROW; i++)
    {
        for(int j = 0; j < COL; j++)
        {
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }

    cout << endl;

    for(int i = 0; i < COL; i++)
    {
        for(int j = 0; j < ROW; j++)
        {
            cout << transpose[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

运行结果如下:


1 2 3 4 
5 6 7 8 
9 10 11 12 

1 5 9 
2 6 10 
3 7 11 
4 8 12 

五、小结

通过本文的学习,我们了解了C++中二维数组的定义、初始化、访问方法,并学习了一些二维数组的应用场景。希望本文能够对读者有所帮助。