函数传递二维数组的方法有三种:
方法一:需要规定二维的大小
#include<stdio.h> #include<iostream> using namespace std ; void print(int b[][10]) { for(int i=0 ;i<10 ;i++) { for(int j=0 ;j<10 ;j++) cout<<b[i][j]<<" " ; cout<<endl ; } } int main() { int a[10][10] ; for(int i=0 ;i<10 ;i++) for(int j=0 ;j<10 ;j++) a[i][j]=i*10+j ; print(a) ; }
方法二:形参声明为指向数组的指针(注意括号)
#include<stdio.h> #include<iostream> using namespace std ; void print(int (*b)[10]) { for(int i=0 ;i<10 ;i++) { for(int j=0 ;j<10 ;j++) cout<<b[i][j]<<" " ; cout<<endl ; } } int main() { int a[10][10] ; for(int i=0 ;i<10 ;i++) for(int j=0 ;j<10 ;j++) a[i][j]=i*10+j ; print(a) ; }
方法三:形参声明为指针的指针
#include<stdio.h> #include<iostream> using namespace std ; void print(int **b) { for(int i=0 ;i<10 ;i++) { for(int j=0 ;j<10 ;j++) cout<<b[i][j]<<" " ; cout<<endl ; } } int main() { int a[10][10] ; for(int i=0 ;i<10 ;i++) for(int j=0 ;j<10 ;j++) a[i][j]=i*10+j ; int *p[10] ; for(int i=0 ;i<10 ;i++) p[i]=a[i] ; print(p) ; }