用指针转置n*n数组,没有输出哪里错了



#include
int reverse(int N,int (*s)[N],int (*q)[N]);//为什么这样写??
int main()
{
    int N=0;
    scanf("%d",&N);
    int array1[N][N];
    int array2[N][N];
    int *p,*q;
    *p=array1[0];
    *q=array2[0];
    for(int i=0;ifor(int j=0;j"%d",p++);
        }
    }
    reverse(N,array1,array2);
    for(int i=0;ifor(int j=0;j"%d",q++);
        }
    }
}
int reverse(int N,int (*s)[N],int (*q)[N])//为什么这样写??
{
     for(int i=0;ifor(int j=0;j

函数首部:因为参数是二维数组名,相当于二维数组首元素的地址,也就是一维数组的地址,用数组指针接收