c++怎么向函数传递一个二维数组
时间: 2024-10-02 12:00:48 浏览: 19
在 C++ 中,你可以通过引用(reference)、指针(pointer)或者 std::vector 来传递二维数组给函数。以下是三种常见的方式:
1. **引用传递**:
```cpp
void processArray(int (&array)[rows][cols]) {
//...
}
int main() {
int arr[5][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
{10, 11, 12},
{13, 14, 15}
};
processArray(arr);
return 0;
}
```
这里 `&arr` 传递的是数组的首地址。
2. **指针传递**:
```cpp
void processArray(int (*array)[cols]) {
//...
}
int main() {
int arr[5][3];
//... 填充数组
processArray(&arr[0]); // 传递二维数组的第一行开始的指针
return 0;
}
```
注意,你需要提供指向第一行的指针,因为二维数组本质上是一维的连续内存区域。
3. **std::vector<std::vector<int>> 使用**:
```cpp
#include <vector>
void processArray(const std::vector<std::vector<int>>& array) {
//...
}
int main() {
std::vector<std::vector<int>> arr = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
processArray(arr);
return 0;
```
这种方式更现代和易读,但需要包含 `<vector>` 头文件,并将二维数组视为一维动态容器。