c++二维数组放入函数中
时间: 2025-03-30 16:02:35 浏览: 30
### 如何在 C++ 中将二维数组作为参数传递给函数
在 C++ 中,可以通过多种方式将二维数组传递给函数。其中一种常见的方式是通过指针来传递衰减后的类型。具体来说,可以定义一个接受指向固定大小一维数组的指针作为参数的函数。
以下是详细的说明:
#### 方法描述
当向函数传递二维数组时,通常会将其视为指向固定长度的一维数组的指针。例如,对于 `int array[rows][cols]` 类型的二维数组,其每一行是一个具有固定列数 (`cols`) 的一维数组。因此,可以声明形参为 `int (*array)[cols]` 来表示这种结构[^1]。
#### 实现代码示例
下面展示了一个具体的例子,演示如何将二维数组传递给函数并打印其内容:
```cpp
#include <iostream>
using namespace std;
// 定义处理二维数组的函数
void process_2d_array(int (*array)[10], size_t rows) {
cout << "process_2d_array" << endl;
for (size_t i = 0; i < rows; ++i) {
cout << i << ": ";
for (size_t j = 0; j < 10; ++j)
cout << array[i][j] << "\t";
cout << endl;
}
}
int main() {
const size_t ROWS = 3, COLS = 10;
int my_array[ROWS][COLS] = {0}; // 初始化二维数组
// 填充数据到二维数组
for (size_t i = 0; i < ROWS; ++i)
for (size_t j = 0; j < COLS; ++j)
my_array[i][j] = i * COLS + j;
// 调用函数并将二维数组作为参数传递
process_2d_array(my_array, ROWS);
return 0;
}
```
上述代码中,`process_2d_array` 函数接收两个参数:一个是指向每行有 10 列整数的指针;另一个是指定行数的变量 `rows`。这样能够确保编译器知道每行的具体宽度,并允许访问整个二维数组的内容。
#### 关键点解析
- **指针与数组的关系**:在 C++ 中,多维数组本质上是一系列连续存储在一维内存空间中的元素集合。通过指定固定的列宽(即 `[10]`),可以让程序理解如何正确索引这些元素。
- **灵活性扩展**:如果需要支持动态尺寸,则可能需要用到模板或者 STL 容器如 vector 等替代传统静态分配方法。
---
###
阅读全文
相关推荐


















