在C中以特定格式打印出二维数组

Printing out a 2d array in a specific format in C

所以基本上当我打印数组时它看起来像这样:

      P00       P01       P02      
      P10       P11       P12       
      P20       P21       P22 

我希望它看起来像这样:

             M[0][0]   M[0][1]   M[0][2]   
      M[0][0] P00       P01       P02       
      M[1][0] P10       P11       P12      
      M[2][0] P20       P21       P22      

我的代码:

 for (z=0; z<N; z++){

              for (c=0; c<N;c++){
                printf("\t%p", &M[z][c]);
    }
    printf("\n");
          }

注意Pxx是指针地址

可能是这样的:

for(i=0;i<N;i++){
        printf("\tM[0][%d]",i);
    }        
    printf("\n");
for (z=0; z<N; z++){
    printf("M[%d][0]",z);
    for (c=0; c<N;c++){

        printf(" %p\t", &M[z][c]);
    }
printf("\n");
}

以上外循环:

printf("\t\tM[0][0]\tM[0][1]\tM[0][2]\n");

然后就在外环下方:

printf("M[%d][0]\t",i);

看起来像这样:

printf("\t\t");

for (z=0; z<N; z++)
  printf("\tM[0][%d]",z);

printf("\n");

for ( z=0; z<N; z++){
   printf("M[%d][0]\t",z);
   for(c=0; c<N; c++){
      printf("\t%p",&M[z][c]);
   }
   printf("\n");
 }