c++ 二维数组传递
时间: 2023-10-12 16:06:00 浏览: 207
二维数组的定义和引用-C++程序设计
在C语言中,传递二维数组有几种方法。其中,方法1是传递数组,注意第二维必须标明。该方法的示例代码如下:
```
void fun1(int arr[][3], int iRows) {
for(int i=0; i<iRows; i++) {
for(int j=0; j<3; j++) {
cout<<arr[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
}
```
方法2是一重指针。该方法的示例代码如下:
```
void fun2(int (*arr)[3], int iRows) {
for(int i=0; i<iRows; i++) {
for(int j=0; j<3; j++) {
cout<<arr[i][j]<<" ";
}
cout<<endl;
}
cout<<endl;
}
```
方法3是指针传递,不管是几维数组都把它看成是指针。需要注意的是,传入方法3的数组需要进行强制类型转换。示例代码如下:
```
void fun3(int* arr, int iRows, int iCols) {
for(int i=0; i<iRows; i++) {
for(int j=0; j<iCols; j++) {
cout<<*(arr + i*iCols + j)<<" ";
}
cout<<endl;
}
cout<<endl;
}
```
在主函数中调用这些方法时,需要根据具体情况选择合适的方法进行传递。如果使用方法1或方法2,可以直接传递二维数组。如果使用方法3,则需要进行强制类型转换。以下是一个示例代码:
```
int main() {
int a = {{1, 2, 3}, {4, 5, 6}};
fun1(a, 2);
cout<<endl;
fun2(a, 2);
cout<<endl;
fun3((int*)a, 2, 3);
cout<<endl;
return 0;
}
```
请注意,传递二维数组时,需要同时传递数组的行数和列数。这样在方法中就能正确地访问数组的元素。希望对你有所帮助!
阅读全文