C Programming Language>第五章 例[5-1]:求4的阶乘 ①递归调用点,此 时整个表达式的运算 int fac(int n)t 还没有完成,必须返 if(n==0) 回一个值参与运算后, 求出整个表达式的值, return(1); 然后再返回上一层递 else 归调用点。递归调用 点也是返回点 return(n*fac(n-1)) ②保护现场:保存 数据,以便返回时再 1 void minot 使用;保存返回地址 Int n; scanf(%od", &n); printf(%odn", fac(n)); 阶乘演示 quia( uster(ILcny
① 递归调用点,此 时整个表达式的运算 还没有完成,必须返 回一个值参与运算后, 求出整个表达式的值, 然后再返回上一层递 归调用点。递归调用 点也是返回点。 ②保护现场:保存 数据,以便返回时再 使用;保存返回地址 等
C Programming Language>第五章 It fac(int n)i 4 if(n==0) return(1) fac(n) else return(n*fac(n-1) fac(3) else return( n*fac( n-1)); fac(2) return( n*fac( n-1 ) l fac(1) return( n* fac( n-1) 2 fac(0) 3 return( n*fac(n-1)) 4 栈:先进后出。保存数据 return(1); U bajin(slc,( cnb:
…else return( n*fac( n-1 )); fac(n) fac(3) fac(2) fac(1) fac(0) … return( n*fac( n-1 )); …return( n*fac( n-1 )); …return( n*fac( n-1 )); …return( 1 ); 4 4 3 1 2 栈:先进后出。保存数据 int fac(int n){ if(n==0) return(1); else return(n*fac(n-1)); }