<我的疑惑>指针指向二维数组
程序代码://矩阵转置
#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]才行吗,疑惑中,求解~!








