for循环是一种处理数组的工具。下面进一步讨论如何使用嵌套for循环中来处理二维数组。
C++没有提供二维数组类型,但是用户可以创建每个元素本身都是数组的数组。例如,假设要存储5个城市在4年间的最高温度,可以这样声明数组:
int maxtemps[4][5];
该声明意味着maxtemps是一个包含4个元素的数组,其中每个元素都是一个由5个整数组成的数组。可以将maxtemps数组看作4行组成,其中每一行有5个温度值。
表达式maxtemps[0]是maxtemps数组的第一个元素,因此maxtemps[0]本身就是一个由5个int组成的数组。maxtemps[0]数组的第一个元素是maxtemps[0][0],该元素是一个int。因此,需要使用两个下标来访问int元素。可以认为第一个下标表示行,第二个下标表示列(如下图)。
假设要打印数组所有的内容,可以用一个for循环来改变行,用另一个被嵌套的for循环来改变列:
for(int row = 0;row < 4;row++)
{
for(int col = 0;col < 5;++col)//对于每个row值,内部的for循环将遍历所有的col值
cout << maxtemps[row][col] << "\t";//在每个值之后打印一个制表符
cout << endl;//打印完每行后,打印一个换行符
}