//严格地说,C++中没有多维数组,通常所指的多维数组其实就是数组的数组。
//如果数组的元素又是数组,则称为二维数组,以此类推。
#include <iostream.h>
int a[3] = {1, 2, 3};
int b[3][4] =  {1, 2, 3, 4,
                5, 6, 7, 8,
                9,10,11,12};
void main()
{
    cout << *(a + 2) << endl;  //C++将数组名视为数组的第一个元素的地址
    cout << a[2] << endl;
    cout << *(b[1] + 1) << endl; 
//只有初始化的数组才可以省略第一维长度
                                                                      
//b[1]代表0行1列的地址,b[1] + 1表示行的地址再加1的地址
    cout << *(*(b + 2) + 1) << endl; 
//b+2表示0列的地址再加上2的地址就是2行0列的地址
                                                           
//*(b + 2) 表示元素9,元素9的数组再加上1个地址,就是2行1列的地址
                                                         
                 
//如果b+2前面没有*,则相当于b+3,此时数组越界
}

程序输出结果为:

3

3

6

10