#include//巩固知识: // *是取值运算符和声明指针类型 // &是取地址运算符 //C语言多维数组与数组指针 int main() { //三维数组:={{{}},{{}}}; int a [2] [5] [10] = { //数组:块 行 列 //数组块一 {{0,1,2,3,4,5,6,7,8,9},//行1 {10,11,12,13,14,15,16,17,18,19},//行2 {20,21,22,23,24,25,26,27,28,29},//行3 {30,31,32,33,34,35,36,37,38,39},//行4 {40,41,42,43,44,45,46,47,48,49}//行5 //列: 1 2 3 4 5 6 7 8 9 10 }, //数组块二 {{100,101,102,103,104,105,106,107,108,109},//行1 {110,111,112,113,114,115,116,117,118,119},//行2 {120,121,122,123,124,125,126,127,128,129},//行3 {130,131,132,133,134,135,136,137,138,139},//行4 {140,141,142,143,144,145,146,147,148,149}//行5 //列: 1 2 3 4 5 6 7 8 9 10 } }; printf("%dn",*(*(*(a+1)+2)+3));//通过*号取*(*(a + 1) + 2) + 3的值,得到是a[2][5][10]的第二个5x10数组块的第二行的第三列的最终数值123 printf("%dn", *(*(a + 1) + 2) + 3);//*(*(a + 1) + 2) + 3是a[2][5][10]的第二个5x10数组块的第二行的第三列的地址 printf("%dn", *(*(a + 1) + 2));//通过*号取*(a + 1) + 2的值,得到的是a[2][5][10]的第二个5x10数组块的第二行的地址 printf("%dn", *(a + 1) + 2);//*(a + 1) + 2;是a[2][5][10]的第二个5x10数组块的第二行的地址 printf("%dn", *(a + 1));//使用*号取a+1的值,得到的是a[2][5][10]的第二个地址,即是第二个5x10数组块的地址 printf("%dn", a + 1);//a+1是a[2][5][10]的第二个地址,即是第二个5x10数组块 printf("%dn", a);//a是a[2][5][10]的首地址,即是第一个5x10数组块 }



