这个是数组指针、指针数组、二维数组之间相互转换的代码 

  #include<stdio.h>
void main()
{
int a[][]={,,,,,,,};
int *b=NULL;
int **c;
int (*d)[]; int * e[];
b=*(a+)+;
e[]=&a[][];
d=a;
//a[][] equal **c equal (*d)[] //about (*d)[4] **d
printf("about (*d)[4] **d (*(d+1)[1])\n");
printf("(*d)[0]:%d\n(*(d+1)[1]):%d\n**d:%d\n*(*d+1):%d\n*(*(d+1)+1):%d\n",(*d)[],(
*(d+))[],**d,*(*d+),*(*(d+)+)); //about *(a[0]+1) **(a+1) *(*(a+1)+1) !!!!!
printf("about *(a[0]+1) **(a+1) *(*(a+1)+1)\n");
printf("a[1][2]:%d\n",a[][]);
printf("*b:%d\n",*b);
printf("*(*a+1):%d\n*(*(a+1)):%d\n*(a[0]):%d\n**a:%d\n",*(a[]+),**(a+),*(a[]),*
*a);
printf("*(*(a+1)+1):%d\n*(*(a)+2):%d\n*(a[0]+1):%d\n",*(*(a+)+),*(*(a)+),*(a[]+
));
printf("about *e[0]");
printf("*e[0]:%d\n",*e[]);
}

  输出结果

 about (*d)[] **d (*(d+)[])
(*d)[]:
(*(d+)[]):
**d:
*(*d+):
*(*(d+)+):
about *(a[]+) **(a+) *(*(a+)+)
a[][]:
*b:
*(*a+):
*(*(a+)):
*(a[]):
**a:
*(*(a+)+):
*(*(a)+):
*(a[]+):
about *e[]*e[]:
05-07 15:36