//严格地说,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