指针定位二维数组的一些小问题

我不理解代码最后的p=a、*(*(p+x)+y))是什么含义,他又是怎么定位到二维数组的具体行列呢,谢谢大家了


#include
int main(){
    int a[3][4];
    int i,j,x,y;
    int (*p)[4];  //指针变量p指向包含4个整型元素的一维数组
    printf("输入:\n");
    for(i=0;i<3;i++){
        for(j=0;j<4;j++){
            scanf("%d",&a[i][j]);
        }
    }
    printf("输出:\n");
    for(i=0;i<3;i++){
        for(j=0;j<4;j++){
            printf("%d ",a[i][j]);
        }
        printf("\n");
    }
    p=a;    //p指向二维数组的0printf("要定位的行列:\n");
    scanf("%d %d",&x,&y);    
    printf("a[%d,%d]=%d\n",x,y,*(*(p+x)+y));    //输出a[x][y]的值
    
} 


A[B]
*(A+B)
*(B+A)
B[A]
//以上四行等价

"abc"[1]
*("abc"+1)
*(1+"abc")
1["abc"]
//以上四行等价

A[0]
*(A)
0[A]
//以上三行等价