两种方式:
1. 静态二维数组,如int a[10][20];
2. 二维指针创建的动态数组,如int** p.
第一种:
1 int GetMaxElem(int (*ppArray)[20], int nRow, int nColumn)
2 {
3 ASSERT(ppArray != NULL);
4 ASSERT(nRow > 0 && nColumn > 0);
5
6 int nMax = ppArray[0][0];
7
8 for (int i=0; i<nRow; i++)
9 {
10 for (int j=0; j<nColumn; j++)
11 {
12 if (ppArray[i][j] > nMax)
13 {
14 nMax = ppArray[i][j];
15 }
16 }
17 }
18
19 return nMax;
20 }
2 {
3 ASSERT(ppArray != NULL);
4 ASSERT(nRow > 0 && nColumn > 0);
5
6 int nMax = ppArray[0][0];
7
8 for (int i=0; i<nRow; i++)
9 {
10 for (int j=0; j<nColumn; j++)
11 {
12 if (ppArray[i][j] > nMax)
13 {
14 nMax = ppArray[i][j];
15 }
16 }
17 }
18
19 return nMax;
20 }
调用时如下:
1 int (*p)[20] = a;
2 int nMax = GetMaxElem(p, 10, 20);
2 int nMax = GetMaxElem(p, 10, 20);
另外,还可以使用以下方式:
1 typedef int MATRIX[10][20];
2 int GetMaxElem(MATRIX ppArray, int nRow, int nColumn)
2 int GetMaxElem(MATRIX ppArray, int nRow, int nColumn)
调用时使用:
1 int nMax = GetMaxElem(p, 10, 20);
2 int nMax = GetMaxElem(a, 10, 20);
2 int nMax = GetMaxElem(a, 10, 20);
第二种:
1 int GetMaxElem(int** ppArray, int nRow, int nColumn)
2 {
3 ASSERT(ppArray != NULL);
4 ASSERT(nRow > 0 && nColumn > 0);
5
6 int nMax = ppArray[0][0];
7
8 for (int i=0; i<nRow; i++)
9 {
10 for (int j=0; j<nColumn; j++)
11 {
12 if (ppArray[i][j] > nMax)
13 {
14 nMax = ppArray[i][j];
15 }
16 }
17 }
18
19 return nMax;
20 }
2 {
3 ASSERT(ppArray != NULL);
4 ASSERT(nRow > 0 && nColumn > 0);
5
6 int nMax = ppArray[0][0];
7
8 for (int i=0; i<nRow; i++)
9 {
10 for (int j=0; j<nColumn; j++)
11 {
12 if (ppArray[i][j] > nMax)
13 {
14 nMax = ppArray[i][j];
15 }
16 }
17 }
18
19 return nMax;
20 }