一个函数能返回C中的另一个函数吗?
我想知道程序的输出是什么。有两个功能,功能1和功能2。第一个函数有一个if语句,当不满足条件时,它返回function2。Function2与之类似,但当不满足条件时,它会返回自身“Function2”。你知道在这种情况下会发生什么吗? 如果一个函数返回另一个函数,是否执行第二个函数? 一个函数返回它自己呢 我为没有说得更具体而道歉。我的意思是:一个函数能返回C中的另一个函数吗?,c,C,我想知道程序的输出是什么。有两个功能,功能1和功能2。第一个函数有一个if语句,当不满足条件时,它返回function2。Function2与之类似,但当不满足条件时,它会返回自身“Function2”。你知道在这种情况下会发生什么吗? 如果一个函数返回另一个函数,是否执行第二个函数? 一个函数返回它自己呢 我为没有说得更具体而道歉。我的意思是: int function1(int n) { if(n==0){ return 1; } return fun
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并返回function2时会发生什么?函数2被调用了吗?如果是,但条件不满足,那么它是否会一直调用自己,直到条件满足并返回“s”
一个函数可以返回另一个函数吗
我认为你真正的意思是:一个函数能返回另一个函数的结果吗
答案是肯定的。使用指针也可以返回函数,但我怀疑您想做什么
Function2与之类似,但当不满足条件时,它会返回自身“Function2”
Function2是一个递归函数。这是一个调用自身来计算结果的函数。例如,exponentiate
函数可以通过以下方式计算:
function exponentiate(x, n) {
if (n == 0) {
return 1;
} else {
return x * exponentiate(x, n - 1);
}
}
(如果不满足条件,则使用不同的参数调用相同的函数)
第一个函数有一个if语句,当不满足条件时,它返回function2
如果需要,Function1只调用Function2。您指的是递归吗?返回调用自身结果的函数是递归函数,但我没有看到函数返回另一个函数的地址的情况。它是返回函数本身,还是返回调用函数的结果?请发布代码,而不是对其进行描述。@Gaurav我认为值得在这里说得精确一点,并说返回调用结果的函数是递归函数。(除非函数编程或其他东西具有不同的递归含义)是的,任何函数都可以返回函数指针。然而,你所描述的事物的用途是相当有限的。像您描述的那样的程序需要重新设计,以使其不包含不必要的复杂性和混淆。一个函数可能返回另一个函数,但不返回其本身。Downvoter:请解释我的答案中的错误,以便我可以改进它。OP询问函数返回其他函数,不调用其他函数。我相信OP是一个还没有真正理解函数的初学者,这个标题有误导性。我决定忽略标题,把重点放在问题的主体上。换句话说,你的答案是关于递归调用函数的。OP想要返回f1中的函数f2。@悬空指针OP编辑了他的答案,是关于递归的。