C 中一个函数可以返回另一个函数吗?

标签 c

我试图弄清楚程序的输出是什么。有两个函数,function1 和 function2。第一个函数有一个 if 语句,当条件不满足时,它返回 function2。 Function2 类似,但当条件不满足时,它返回自身“function2”。有什么想法在这种情况下会发生什么吗? 如果一个函数返回另一个函数,是否会执行第二个函数? 如果函数返回自身呢?

很抱歉没有说得更具体。我想说的是:

int function1(int n) {
    if(n==0){
        return 1;
    }
    return function2(n, 1);
}

int function2(int c, int, s) {
    if(c==1) {
        return s;
    } else {
        return function2(c-1, s*c);
    }
}

我不明白的是,当调用 function1 并返回 funciton2 时会发生什么? function2 被调用了吗?如果是,并且不满足条件,那么它是否会继续调用自身,直到满足条件并返回 's' 为止?

最佳答案

Can a function return another function?

我认为你真正的意思是:一个函数可以返回另一个函数的结果吗?

答案是肯定的。使用指针也可以返回函数,但我怀疑你想要做什么。

Function2 is similar but it returns itself ‘function2’ when the condition is not met.

Function2 是一个递归函数。这是一个调用自身来计算结果的函数。例如,指数函数可以这样计算:

function exponentiate(x, n) {
    if (n == 0) {
        return 1;
    } else {
        return x * exponentiate(x, n - 1);
    }
}

(如果不满足条件,则使用不同的参数调用相同的函数)

The first function has an if statement and when the condition is not met, it returns function2.

如果需要,Function1 只需调用 Function2。

关于C 中一个函数可以返回另一个函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52144228/

相关文章:

javascript - : javascript vs C vs Python? 中 if block 中变量的范围是多少

c - C语言编写Lex和Yacc规则检测#include

c++ - 这个乘除函数正确吗?

c - Gtk+2.0,如何删除附加到 GtkTable 的小部件?

c - C语言中的隐式声明

c - 在 C 中使用指针提取数组的一部分

c - 字符串文字 : Where do they go?

Codechef 和直角三角形的斜率法

c - scanf 和 "\n"转义序列

c - 让程序在用户输入值后停止