21xrx.com
2024-11-05 16:39:24 Tuesday
登录
文章检索 我的文章 写文章
C++中如何传递二维数组到函数中?
2023-07-05 02:19:50 深夜i     --     --
C++ 二维数组 传递 函数

在C++中,二维数组是由多个一维数组组成的。如果要将二维数组传递到函数中,需要使用指针和指针的指针。下面是一些关于如何传递二维数组到函数的示例代码和解释。

### 示例一:传递二维数组到函数


#include <iostream>

using namespace std;

void printArray(int arr[][3], int rows, int cols) {

  for (int i = 0; i < rows; i++) {

    for (int j = 0; j < cols; j++) {

      cout << arr[i][j] << " ";

    }

    cout << endl;

  }

}

int main() {

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

  int rows = 2, cols = 3;

  printArray(arr, rows, cols);

  return 0;

}

输出结果:


1 2 3

4 5 6

在这个例子中,我们使用了一个包含10个元素的二维数组,并将其作为参数传递给名为`printArray()`的函数。`printArray()`函数使用嵌套循环遍历整个数组,并输出每个元素。

### 示例二:使用指针的指针传递二维数组到函数

在这个示例中,我们将二维数组作为参数传递给名为`printArray()`的函数。而且,我们使用指针和指针的指针来完成传递:


#include <iostream>

using namespace std;

void printArray(int **arr, int rows, int cols) {

  for (int i = 0; i < rows; i++) {

    for (int j = 0; j < cols; j++) {

      cout << arr[i][j] << " ";

    }

    cout << endl;

  }

}

int main() {

  int rows = 2, cols = 3;

  int **arr = new int*[rows];

  for (int i = 0; i < rows; i++) {

    arr[i] = new int[cols];

  }

  //初始化数组

  int count = 1;

  for (int i = 0; i < rows; i++) {

    for (int j = 0; j < cols; j++) {

      arr[i][j] = count++;

    }

  }

  printArray(arr, rows, cols);

  for (int i = 0; i < rows; i++) {

    delete[] arr[i];

  }

  delete[] arr;

  return 0;

}

输出结果:


1 2 3

4 5 6

在这个例子中,我们使用指针和指针的指针来传递二维数组。首先,我们以动态分配的方式初始化数组,并使用for循环依次为每个元素分配相应的值。然后,我们使用`printArray()`函数来输出二维数组的所有元素。

### 总结

在C++中,使用指针和指针的指针可以传递二维数组。需要注意的是,传递二维数组是一个次优解,实际上我们很少这么做。如果要在C++中处理多维数组,则通常使用STL容器或矩阵库,例如Eigen。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复