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;
}
posted @ 2023-03-07 12:41  摩天仑  阅读(109)  评论(0编辑  收藏  举报