#include<stdio.h>
void main()
{
void zz(int (*p)[3]);
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int (*t)[3]=a;
zz(t);
}
void zz(int (*p)[3])
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=0;j<i;j++)
{
temp=*((*p+i)+j); //把temp=*(*(p+i)+j);
*((*p+i)+j)=*((*p+j)+i);//*(*(p+i)+j)=*(*(P+j)+i);
*((*p+j)+i)=temp; //*(*(p+j)+i)=temp;换成程序里面的,为什么结果不一样??
} //按理来说*((*p+i)+j)和*(*(p+i)+j同时代表指向同一个原素
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",*(*(p+i)+j));
}
printf("\n");
}
}
void main()
{
void zz(int (*p)[3]);
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int (*t)[3]=a;
zz(t);
}
void zz(int (*p)[3])
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=0;j<i;j++)
{
temp=*((*p+i)+j); //把temp=*(*(p+i)+j);
*((*p+i)+j)=*((*p+j)+i);//*(*(p+i)+j)=*(*(P+j)+i);
*((*p+j)+i)=temp; //*(*(p+j)+i)=temp;换成程序里面的,为什么结果不一样??
} //按理来说*((*p+i)+j)和*(*(p+i)+j同时代表指向同一个原素
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",*(*(p+i)+j));
}
printf("\n");
}
}