好喝来自

#include<stdio.h>    
void main()    
{    
        int m[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};    
        int i,j;    
        int (*p)[4];//p的维数必须与数组m的第二维一样    
        int * q[3];    
        p=m;    
        printf("数组指针输出元素:\n");    
        printf("(一):\n");    
        for(i=0;i<3;i++)    
        {    
                for(j=0;j<4;j++)    
                        printf("%3d",*(*(p+i)+j));//*(*(p+i)+j)相当于p[i][j]    
                                                                            /*二维指针加一个*相当于变成一维指针*/
    
                printf("\n");    
        }    
        printf("(二):\n");    
        for(i=0;i<3;i++,p++)    
        {    
                printf("%3d",**p);    
                printf("%3d",*(*p+1));    
                printf("%3d",*(*p+2));    
                printf("%3d",*(*p+3));    
                printf("\n");    
        }    
        for(i=0;i<3;i++)    
                q[i]=m[i];    
        printf("数组指针输出元素:\n");    
        printf("(一):\n");    
        for(i=0;i<3;i++)    
        {    
                for(j=0;j<4;j++)    
                        printf("%3d",q[i][j]);    
                printf("\n");    
        }    
        printf("(二):\n");    
        q[0]=m[0];    
        for(i=0;i<3;i++,p++)    
        {    
                for(j=0;j<4;j++)    
                        printf("%3d",*(q[0]+j+4*i));    
                printf("\n");    
        }    
}