1 #include <stdio.h> 2 3 int funk(int (*a)[3], int (*b)[2]) 4 { 5 int i, j; 6 7 for(i=0; i<2; i++) 8 for(j=0; j<3; j++) 9 *(*(b+j)+i) = *(*(a+i)+j); 10 } 11 12 int funk1(int ( (*p)(int (*)[3], int (*)[2])), int (*a)[3], int (*b)[2]) 13 { 14 p(a, b); 15 } 16 17 int main() 18 { 19 int arr[2][3] = {{3, 6, 2}, {9, 7, 4}}; 20 int brr[3][2] = {0}; 21 int i, j; 22 23 for(i=0; i<2; i++){ 24 for(j=0; j<3; j++){ 25 printf("%d ", *(*(arr+i)+j)); 26 27 } 28 29 printf(" "); 30 } 31 32 // funk(arr, brr); 33 int (*p)(int (*)[3], int (*)[2]) = funk; 34 // p(arr, brr); 35 funk1(p, arr, brr); 36 37 for(i=0; i<3; i++){ 38 for(j=0; j<2; j++){ 39 printf("%d ", *(*(brr+i)+j));// 将brr 写成 arr,无言以对。 40 41 } 42 printf(" "); 43 } 44 45 }