c++二维数组传参数
在C++中,你可以通过以下几种方式传递二维数组作为参数:
1. 使用指针传递二维数组:
```cpp
#include <iostream>
// 函数声明,参数为二维数组和行、列数
void printArray(int arr[][3], int rows, int cols);
int main() {
    const int rows = 2;
    const int cols = 3;
    int myArray[rows][cols] = {{1, 2, 3}, {4, 5, 6}};
    // 调用函数,传递二维数组及其行、列数
    printArray(myArray, rows, cols);
    return 0;
}
// 函数定义,使用指针传递二维数组
void printArray(int arr[][3], int rows, int cols) {
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            std::cout << arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
}
```
2. 使用指针和动态内存分配传递二维数组:
```cpp
#include <iostream>
// 函数声明,参数为二维数组和行、列数
void printArray(int** arr, int rows, int cols);
int main() {
    const int rows = 2;
    const int cols = 3;
    // 动态分配内存
    int** myArray = new int*[rows];
    for (int i = 0; i < rows; ++i) {
        myArray[i] = new int[cols];
    }
    // 初始化数组
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            myArray[i][j] = i * cols + j + 1;
        }
    }
    // 调用函数,传递二维数组及其行、列数
    printArray(myArray, rows, cols);
    // 释放动态分配的内存
    for (int i = 0; i < rows; ++i) {
        delete[] myArray[i];
    }
    delete[] myArray;
    return 0;
}
// 函数定义,使用指针和动态内存分配传递二维数组
指针与二维数组
void printArray(int** arr, int rows, int cols) {
    for (int i = 0; i < rows; ++i) {
        for (int j = 0; j < cols; ++j) {
            std::cout << arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
}
```
这两种方法都是常见的在C++中传递二维数组的方式,具体选择哪种方式取决于你的需求和偏好。在使用动态内存分配时,记得在不需要使用数组时释放相应的内存。