c++——函数传递多维数组
第一种方法
必须使用5来限制参数类型是int[5],另一个参数可以指定
void print(int m[][5],int dim1){
for(int i = 0; i!= dim1; i++){
for(int j = 0; j != 5; j++){
std::cout << m[i][j] << "\t";
}
std::cout << std::endl;
}
}
第二种方法
使用指针的方式,可以传递2个参数
void print1(int* m,int dim1,int dim2){
for(int i = 0; i!= dim1; i++){
for(int j = 0; j != dim2; j++){
std::cout << m[i*dim2+j] << "\t";
}
std::cout << std::endl;
}
}
测试
int main()
{
int ma[3][5];
for(int i = 0; i!= 3; i++){
for(int j = 0; j != 5; j++){
ma[i][j] = i*10+j;
}
}
print(ma,3);
print1(&ma[0][0],3,5); // 需要传入地址,一维数组传递地址数组名就可以(隐式),但是多维数组必须使用显式
system("pause");
return 0;
}