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

  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 }

 

转载于:https://www.cnblogs.com/luoxiang/p/4036201.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值