首页 > 代码库 > 数组转置(函数指针,回调函数)

数组转置(函数指针,回调函数)

  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("\n"); 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("\n"); 43         } 44  45 }

 

数组转置(函数指针,回调函数)