在传递一维数组的时候,可以简单粗暴的传递指针。但是对于二维数组来说,必须知道数组的第二维的信息,才可以正确的进行索引。以下几种做法可以正确的传递二维数组。
#include <iostream>
using namespace std;
/*传二维数组*/
//第1种方式:传数组,第二维必须标明
/*void display(int arr[][4])*/
void display1(int arr[][4],const int irows)
{
for (int i=0;i<irows;++i)
{
for(int j=0;j<4;++j)
{
cout<<arr[i][j]<<" "; //可以采用parr[i][j]
}
cout<<endl;
}
cout<<endl;
}
//第2种方式:一重指针,传数组指针,第二维必须标明
/*void display(int (*parr)[4])*/
void display2(int (*parr)[4],const int irows)
{
for (int i=0;i<irows;++i)
{
for(int j=0;j<4;++j)
{
cout<<parr[i][j]<<" "; //可以采用parr[i][j]
}
cout<<endl;
}
cout<<endl;
}
//注意:parr[i]等价于*(parr+i),一维数组和二维数组都适用
//第3种方式:传指针,不管是几维数组都把他看成是指针