记得在写一个迷宫的小程序的时候就遇到传递二维数组的麻烦,网上一搜,出来的是谭浩强书上的照本宣科。而且传递后也不能直接以a[i][j]形式引用数组元素,这对写代码有麻烦啊。也有指定第二维的方法,这就又有些限制了。最近自己有所收获。
#include
<
iostream
>
using namespace std;
template < typename T >
void print(T a, int m, int n) // 这种方法对于维数再多些的数组一样适用
... {
for(int i = 0; i != m; i++)
for(int j = 0; j != n; j++)
cout << a[i][j] <<endl;
}
/**/ /*
void print(int** a, int m, int n)
{
for(int i = 0; i != m; i++)
for(int j = 0; j != n; j++)
cout << a[i][j] <<endl;//这样的引用是错误的
}
*/
int main()
... {
int array[3][3] = ...{1,2,3,4,5,6,7,8,9};
print( (int**)array,3,3);
return 0;
}
using namespace std;
template < typename T >
void print(T a, int m, int n) // 这种方法对于维数再多些的数组一样适用
... {
for(int i = 0; i != m; i++)
for(int j = 0; j != n; j++)
cout << a[i][j] <<endl;
}
/**/ /*
void print(int** a, int m, int n)
{
for(int i = 0; i != m; i++)
for(int j = 0; j != n; j++)
cout << a[i][j] <<endl;//这样的引用是错误的
}
*/
int main()
... {
int array[3][3] = ...{1,2,3,4,5,6,7,8,9};
print( (int**)array,3,3);
return 0;
}