二维数组是一个[i][j]。例如,[1][1]是第一行和第一列中的数字。指针只指向数字的地址,但不指定数字。它们之间的区别之一是指向特定的数字,另一个是执行数字的地址
1。二维数组名不是辅助指针,它只是一个特殊的常量指针。三维、四维甚至n维数组也是如此。只要它是一个数组,它就是一个普通的常量指针。2辅助指针p也可以解释为指针的指针,即存储在p中的值实际上是一个指针。计算:*p值实际上是一个指针值,那么*(*p)是第二个指针的最终值。对于二维数组a[2][2],a也是一个地址,这个值也等于a[0],它也等于a[0[0]的地址,即&a[0][0]。从这个角度来看,a的地址值是一个变量值(不是指针),因此a不是辅助指针,最多是主指针。
可以将数组分配给相同类型的指针,例如chara[10]、*p=ainta[[n]、int[n]的数组,即(nintarray)的数组、int(*p)[n]、int[n]的指针和指向(nintarray)的指针。所以p=a是合法的,int*pa[n],int指针的数组是int**pp,int指针的指针是合法的,所以pp=pa是合法的,但是次指针和次数组的类型不一致,一个是指针的指针,另一个是数组的指针,所以赋值是非法的。
不同的二维数组位于连续的内存空间中,次指针加malloc()不是连续的。这种情况基本上告别了c语言