C++语言程序设计

7.6.2 用指针访问数组元素
我们已经知道：数组名就是数组在内存中的首地址，即数组中第一个元素的地址。我们可以通过下标访问数组元素，也可以通过指针访问数组元素。对于下面的数组：
int ara[5] = {10, 20, 30, 40, 50};
如果打印ara[0]和*ara均输出结果10，即数组ara第一个元素的值。如果要打印ara的第三个元素，可用下面的语句：
cout << *(ara+2) ; // 即打印ara[2]
对于数组ara：
ara+0 指向 ara[0]
ara+1 指向 ara[1]
ara+2 指向 ara[2]
ara+3 指向 ara[3]
ara+4 指向 ara[4]
虽然数组名是指针，但它是常量指针，数组名的值是不能改变的。
我们也可以用指针访问二维数组元素，不过比一维数组元素的访问麻烦一些。由于二维数组元素在内存中是一维的，且按行存放。所以用指针访问二维数组的关键是如何计算出某个二维数组元素在内存中的地址。例如，对于一个m行、n列的二维数组num，num[i][j]（i≤m，j≤n）在内存中的地址应为：num+i×n+j。