设定一个m行n列的矩阵a,编写一个swapt函数,使得它对a的元素进行交换 第一个元素和倒数第一个元素交换,第二个元素和倒数第二个元素交换

有没有人帮我解答一下,为什么指针不可以啊?代码没有报错,但是为什么输出空白啊

#include<iostream>
#include<algorithm>

const int M=3;
const int N=4;

using namespace std;

void swapt(int *pa,int m,int n)
{
    int *tmp; 
    
    for(int i=0;i<m/2;i++)
    {
        for(int j=0;j<n;j++)
        {
            *tmp=*(pa+i*n+j);
            *(pa+i*n+j)=*(pa+(m-1-i)*n+(n-1-j));
            *(pa+(m-1-i)*n+(n-1-j))=*tmp;
        }
        
    }
    
    if(m%2!=0)
    {
        for(int j=0;j<n/2;j++)
        {
            *tmp=*(pa+(m/2)*n+j);
            *(pa+(m/2)*n+j)=*(pa+(m/2)*n+(n-1-j));
            *(pa+(m/2)*n+(n-1-j))=*tmp;
        }
    }
    
} 

int main(void)
{
    int a[M][N]={{1,2,3,4},{2,3,4,5},{3,4,5,6}};
    int *p=*a;//int *p=&a[0][0];  int *p=a[0];  int *p=*a;
    cout<<"原矩阵:"<<endl;
    for(int i=0;i<M;i++)
    {
        for(int j=0;j<N;j++)
        {
            cout<<*(p+i*N+j)<<" ";
        }
        cout<<endl;
    }
    cout<<"变换后:"<<endl;
    swapt(p,M,N);
    for(int i=0;i<M;i++)
    {
        for(int j=0;j<N;j++)
        {
            cout<<*(p+i*N+j)<<" ";
        }
        cout<<endl;
    }
    return 0;
}

*tmp改为tmp

#include<iostream>
#include<algorithm>
 
const int M=3;
const int N=4;
 
using namespace std;
 
void swapt(int *pa,int m,int n)
{
    int tmp; 
    
    for(int i=0;i<m/2;i++)
    {
        for(int j=0;j<n;j++)
        {
            tmp=*(pa+i*n+j);
            *(pa+i*n+j)=*(pa+(m-1-i)*n+(n-1-j));
            *(pa+(m-1-i)*n+(n-1-j))=tmp;
        }
        
    }
    
    if(m%2!=0)
    {
        for(int j=0;j<n/2;j++)
        {
            tmp=*(pa+(m/2)*n+j);
            *(pa+(m/2)*n+j)=*(pa+(m/2)*n+(n-1-j));
            *(pa+(m/2)*n+(n-1-j))=tmp;
        }
    }
    
} 
 
int main(void)
{
    int a[M][N]={{1,2,3,4},{2,3,4,5},{3,4,5,6}};
    int *p=*a;//int *p=&a[0][0];  int *p=a[0];  int *p=*a;
    cout<<"原矩阵:"<<endl;
    for(int i=0;i<M;i++)
    {
        for(int j=0;j<N;j++)
        {
            cout<<*(p+i*N+j)<<" ";
        }
        cout<<endl;
    }
    cout<<"变换后:"<<endl;
    swapt(p,M,N);
    for(int i=0;i<M;i++)
    {
        for(int j=0;j<N;j++)
        {
            cout<<*(p+i*N+j)<<" ";
        }
        cout<<endl;
    }
    return 0;
}