01. 请算出下面程序的输出:


点击(此处)折叠或打开

  1. /*
  2.  * ft1101.c
  3.  *
  4.  * Created on: 2012-11-5
  5.  * Author: xiaobin
  6.  *
  7.  * Huawei face questions
  8.  */

  9. typedef int(FUNC1) (int in);
  10. typedef int(FUNC2) (int *, int *, int *);

  11. int inc(int a) {
  12.     return (++a);
  13. }

  14. int muti(int *a, int *b, int *c) {
  15.     return (*c = (*a) * (*b));
  16. }

  17. void show (FUNC2 fun, int arg1, int *arg2) {
  18.     FUNC1 *p = &inc;
  19.     int temp = p(arg1);
  20.     fun(&temp, &arg1, arg2);
  21.     printf("%d\n", *arg2);
  22. }

  23. int main(int argc, char* argv[])
  24. {
  25.     int a = 0;
  26.     show(muti, 10, &a);
  27.     return 0;
  28. }


    1.  show函数 - 参数值

          (1) fun = 乘积函数(muti)

          (2)arg1 = 10

          (3)arg2 = 0

   2. show函数 - 内部执行

          (1)指针p指向累加函数(inc)

          (2)temp值等于执行完累加函数,即11

         01. 请算出下面程序的输出-LMLPHP01. 请算出下面程序的输出-LMLPHP

        (3)执行乘积函数

                 参数1 :11

                 参数2:10

                 参数3:返回值

        (4)输出上面乘积函数的参数3(返回值)

                11 * 10 = 110



10-09 13:31
查看更多