我试图弄清楚程序的输出是什么。有两个函数,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/