4.3 遞歸
4.3.2 遞歸函數
數學函數也可以遞歸定義。例如,階乘函數f(n)=n!可以定義爲:
#### 程序4-10 用遞歸法計算階乘
#include<stdio.h>
int f(int n)
{
return n == 0 ? 1 : f(n-1)*n;
}
int main()
{
printf("%d\n", f(3));
return 0;
}
4.3.4 段錯誤與棧溢出
- 棧溢出不一定是遞歸調用太多,也可能是 局部變量太大。只要總大小超過了允許的範圍,就會產生棧溢出。