<我的疑惑>指针指向二维数组
程序代码:
//矩阵转置 #include <stdio.h> #define M 4 #define N 3 int main() { int a[M][N]={{23,34,3},{35,35,1},{26,4,7},{33,3,2}},b[N][M]; int *p,*q; int i,j; p=a; q=b; for(i=0;i<M;i++) { for(j=0;j<N;j++) printf("%3d",a[i][j]); putchar('\n'); } putchar('\n'); for(i=0;i<N;i++) for(j=0;j<M;j++) *(q+i*M+j)=*(p+j*N+i); for(i=0;i<N;i++) { for(j=0;j<M;j++) printf("%3d",b[i][j]); putchar('\n'); } return 0; } 为啥p=a;和q=b;编译不通过,难道非得用p=a[0]或者p=&a[0][0]才行吗,疑惑中,求解~!