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++中传递二维数组的方式,具体选择哪种方式取决于你的需求和偏好。在使用动态内存分配时,记得在不需要使用数组时释放相应的内存。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论