用指针或是直接交换.
下面是指针的写法:
#include
using namespace std;
void fun(int *p)
{
int i,j,k;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
k=*(p+3*i+j);
*(p+3*i+j)=*(p+3*j+i);
*(p+3*j+i)=k;
}
}
}
int main()
{
int i,j,*p2;
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for( i=0;i<3;i++)
{
for( j=0;j<3;j++)
cout<<*(*(a+i)+j)<<" ";
cout<
cout<
fun(p2);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<*(*(a+i)+j)<<" ";
cout<
}
这样弄完结果是不变的。fun函数参数改成指针类型,跟在下面的操做也改成指针操作就可以了