函数执行过程:
1 在主程序中计算每个实际参数值;
2 用实际参数值初始化形式参数;
3 依次执行函数体的每个语句,直到遇见return语句或函数体结束;
4 计算return后面的表达式的值,用表达式的值构造一个临时变量;
5 回到调用函数,用临时变量置换函数调用,继续主程序的执行;
递归函数构成自我调用,直到递归出口条件:
#includeusing namespace std;int i=0;//记录递推顺序;int j=0;//记录回归调用顺序;long fac(int n){ long sum=0;++i;cout<
递推了4次(自调用前的代码执行了4次),回归3次(基线条件回归,自调用后的代码执行了3次)。
函数调用fac(3),相当于此代码重复了4次:
从以上递推、回归过程可见,递推、回归过程执行函数的代码段是不一样的,递推过程执行自调用函数之前的代码,达到基线回归条件后的第一次回归,直接return一个常量或常量表达式的值(不会再执行return后面的代码),此后的回归过程调用自调用函数之后的代码。
-End-