指向数组的指针变量和指针数组的区别
#include<stdio.h>
int main(){
int *p[3];
int (*q)[3];
int d[3][3]={{1,2,3},{4,5,6},{7,8,9}},i,j;
for(i=0;i<3;i++)
p[i]=d[i];
i=1,j=1;
printf("1:\t%d\t\%d\n",*(p[i]+j),*(d[i]+j));
printf("2:\t%d\t\%d\n",*(*(p+i)+j),*(*(d+i)+j));
printf("3:\t%d\t\%d\n",(*(p+i))[j],(*(d+i))[j]);
printf("4:\t%d\t\%d\n",*(&p[0][0]+i*3+j),*(&d[0][0]+i*3+j));
printf("5:\t%d\t\%d\n",*(p[0]+i*3+j),*(d[0]+i*3+j));
printf("6:\t%d\t\%d\n",p[i][j],d[i][j]);
q=d;
i=2,j=1;
printf("1:\t%d\t\%d\n",*(q[i]+j),*(d[i]+j));
printf("2:\t%d\t\%d\n",*(*(q+i)+j),*(*(d+i)+j));
printf("3:\t%d\t\%d\n",(*(q+i))[j],(*(d+i))[j]);
printf("4:\t%d\t\%d\n",*(&q[0][0]+i*3+j),*(&d[0][0]+i*3+j));
printf("5:\t%d\t\%d\n",*(q[0]+i*3+j),*(d[0]+i*3+j));
printf("6:\t%d\t\%d\n",q[i][j],d[i][j]);
return 0;
}