在理解1,2,3之前,你有必要先了解下数组指针和指针数组这两个概念
数组指针的一般写法是: int (*ptr)[number];
指针数组的一般写法是: int *ptr[number]
ps: 对于数组指针和指针数组的理解也可以从符号的结合优先级上来理解,这里就不做阐述了,都是基本的概念,看看符号优先级表就知道了
具备了以上的知识,然后回来看你的三个问题,其实就开朗很多了
1. char *A[3][4] 等同于 char A[3][4][number]
2.char (*B)[3][4]; 等同于 char B[number][3][4];
3.这个问题一般来说你直接申明个指针然后指向一个二维数组就可以了
例如: int **ptr;
int *ptr[number]
扥等
ps: 1,2这种写法真是很蛋疼,以上是个人理解,可能也是存在错误的地方,仅仅供参考使用