clarification of pointers to multidimensional arrays

view story

http://www.linuxquestions.org – In a C Programming text, the following code is provided: Code: #include <stdio.h> int main(void) { int *pt; int (*pa)[3]; int ar1[2][3]; int ar2[3][2]; int **p2;            //a pointer to a pointer pt = &ar1[0][0];      // both pointer-to-int pt = ar1[0];        // both pointer-to-int pt = ar1; // not valid pa = ar1;            // both pointer-to-int[3] pa = ar2;  //not valid p2 = &pt;            // both pointer-to-int * *p2 = ar2[0];&n (HowTos)