#define NUM_2 3
main()
{
void change(int a[NUM_1][NUM_2],int b[NUM_1][NUM_2]);
int arrow1[NUM_1][NUM_2]={1,2,3,4,5,6,7,8,9},arrow2[NUM_1][NUM_2];
change(arrow1,arrow2); /*此處實參應是二維數組的地址*/
}
void change(int a[NUM_1][NUM_2],int b[NUM_1][NUM_2])
{
int i,j;
int (*p)[3],(*q)[3],*p1,*q1;
p=a;q=b;
for(i=0;p<a+3;p++,i++)
for(p1=*p,j=0;p1<*p+3;p1++,j++)
{q1=*(q+j);
*(q1+i)=*p1;
}
for(q=b;q<b+3;q++)
{for(q1=*q;q1<*q+3;q1++)
printf("%d ",*q1);
printf("\n");
}
}樓主有幾處明顯錯誤 :首先要使調用函數改變主函數的值應該使用引用傳遞而不是值傳遞 ;在調用函數的時候 實參應該是二維數組的地址。