黑马程序员技术交流社区

标题: 调用函数计算 [打印本页]

作者: aofex    时间: 2015-7-9 13:44
标题: 调用函数计算
#include <stdio.h>

typedef int (*Yunsuan)(int, int);

int sum(int a, int b)
{
    return a + b;
}

int minus(int a, int b)
{
    return a - b;
}

int count(int a, int b, Yunsuan p)
{
    return p(a, b);
}

int main()
{
    int a = sum(minus(10, 5), count(10, 5, sum));
    printf("%d\n", a);
    return 0;
}
最后计算结果是20  百思不得其解  我去
作者: 庐山烟雨浙江潮    时间: 2015-7-9 13:52
的确是20啊,
int a = sum(minus(10, 5), count(10, 5, sum));
首先调用minus(10, 5),10-5 = 5返回值为5.
其次调用count(10, 5, sum);在count();中调用sum(10,5),10 + 5 = 15,返回值为15,count(10, 5, sum)的返回值也就是15。
最后将返回值带入,那么 sum(minus(10, 5), count(10, 5, sum));就等于sum(5, 15), 5 + 15 = 20;所以输出20。
: )
作者: aofex    时间: 2015-7-9 17:14
庐山烟雨浙江潮 发表于 2015-7-9 13:52
的确是20啊,
int a = sum(minus(10, 5), count(10, 5, sum));
首先调用minus(10, 5),10-5 = 5返回值为5.

:handshake




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2