21xrx.com
2025-03-28 03:50:24 Friday
文章检索 我的文章 写文章
C++中如何传递二维数组到函数中?
2023-07-05 02:19:50 深夜i     35     0
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。

  
  

评论区

请求出错了