如何用指针进行矩阵转换(在函数中)(语言-c语言)

运行结果和原矩阵相同,并没有实现转换,求高人更改

#include
#define N 3
void f(int (*p)[N]);
int main()
{
    int i,j;
    int a[N][N];
    int (*p)[N];
    p=a;

    for(i=0; ifor(j=0; j"%d",&a[i][j]);
        }
    f(p);
    for(i=0; ifor(j=0; j" %d ",a[i][j]);
        }
        printf("\n");
    }

}
void f(int (*p)[N])
{
    int t,i=0,j=0;
    int (*q)[N];
    q=p;
    for(i=0; ifor(j=0; jt=*(*(p+i)+j);
            *(*(p+i)+j)=*(*(q+j)+i);
            *(*(q+j)+i)=t;
        }

问题不在函数里哦,你的f()函数没有返回值,调用是没有用的,建议把打印矩阵部分语句搬到函数里,然后把printf语句里面的数组名改一下就行了