数组指针指向数组的问题

int main()

{
char a[5]={'A','B','C','D'};
char (*p3)[10] = &a;
char (*p4)[10] = a;
return 0;
}

int main()
{
char a[5]={'A','B','C','D'};
char (*p3)[3] = &a;
char (*p4)[3] = a;
return 0;
}

这两个式子怎么理解啊?貌似指针这样指有点问题,面试题上看到的,也是醉的不行。p3+1和p4+1会怎么指啊?

 char (*p3)[3] = &a;
char (*p4)[3] = a;

这两句都不对,p3 p4都是指针变量,是指向一行有3个元素的指针变量。


下面是可以的。

char a[2][3];
char (*p3)[3] = a;
char (*p4)[3] = a;

你可以去看一下引用和指针的使用,