出了一点小问题,在这里记录一下
#include<stdio.h>
void move(int *p);
int main()
{
int *p;
int a[3][3]={1,2,3,4,5,6,7,8,9};
p=&a[0][0];
//用一个for循环输出矩阵
for(int i=0;i<3;i++)
{
printf("%d,%d,%d\n",a[i][0],a[i][1],a[i][2]);
}
move(p);
for(int i=0;i<3;i++)
{
printf("%d,%d,%d\n",a[i][0],a[i][1],a[i][2]);
}
return 0;
}
//用t=*(p+3*i+j)来遍历数组
void move(int *p)
{
int temp,i,j;
for(i=0;i<3;i++)
for(j=i;j<3;j++) //令j=i,而不是从零开始
{
temp=*(p+3*i+j);
*(p+3*i+j)=*(p+3*j+i);
*(p+3*j+i)=temp;
}
}