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 }