C++语言程序设计

例7-8：假定我们将一年四季的平均气温存放在一个二维数组temp中，例如，第三年的春、夏、秋、冬四季的平均气温分别为15、30、18、-1，则有：
temp[2][0]=15；temp[2][1]=30；temp[2][2]=18；temp[2][3]=-1；
第五年的春、夏、秋、冬四季的平均气温分别为16、29、17、0，则有：
temp[2][0]=16；temp[2][1]=29；temp[2][2]=17；temp[2][3]=0；
需要查找一年四季中的最高的平均气温，函数如下：

| 例7-9

int HighestTemp (const int *temp, const int rows, const int columns)
{
int highest = 0;
for (register i = 0; i < rows; ++i)
for (register j = 0; j < columns; ++j)
if (*(temp + i * columns + j) > highest)
highest = *(temp + i * columns + j);
return highest;
}

本例中，函数的形参是一个int型指针和另外两个整型变量，以指定数组各维的大小。三个形参的const修饰符表示：temp指向的内容和rows、columns的值在函数中是不能修改的。用指针作函数形参同用二维数组作函数形参相比，更加灵活，因为二维数组作函数形参时，不能省略第二维大小的说明。
表达式*(temp + i * columns + j)是取数组的第i行、第j列的元素，等价于temp[i][j]。
由于二维数组在内存中的存储是一维的， HighestTemp函数实际上能够简化为用大小为row * column的一维数组来处理：

| 例7-10

int HighestTemp (const int *temp, const int rows, const int columns)
{
int highest = 0;
for (register i = 0; i < rows * columns; ++i)
if (*(temp + i) > highest)
highest = *(temp + i); return highest;
}