有没有人帮我解答一下,为什么指针不可以啊?代码没有报错,但是为什么输出空白啊
#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;
}