我试图弄清楚程序的输出是什么。有两个函数,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”吗?
答案 0 :(得分:4)
一个函数可以返回另一个函数吗?
我认为您真正的意思是:一个函数可以返回另一个函数的结果吗?
答案是肯定的。使用指针也可以返回一个函数,但是我怀疑您想做什么。
Function2与之类似,但是当不满足条件时,它将返回“ function2”。
Function2是一个递归函数。那是一个自我调用以计算结果的函数。例如,exponentiate
函数可以通过以下方式计算:
function exponentiate(x, n) {
if (n == 0) {
return 1;
} else {
return x * exponentiate(x, n - 1);
}
}
(如果不满足条件,请使用不同的参数调用同一函数)
第一个函数具有if语句,当不满足条件时,它返回function2。
Function1仅在需要时调用Function2。