阶乘,典型的函数递归调用:
long factorial(int m)
{
if (m == 0 || m == 1)
{
return 1;
}
else
{
return factorial(m - 1) * m;
}
}
int main()
{
int m;
printf(" factorial function,input a number... \n");
scanf_s("%d", &m);
printf(" factorial(%d) = %ld\n", m, factorial(m));
}
函数“factorial()”有结束条件,不用担心异常问题,输入“9”执行结果如下:
但是,函数无限制自己调用自己,会是啥样呢?
void func_a()
{
static unsigned long long runs_count = 0;
runs_count++;
printf(" func_a call func_a ...%d times\n",runs_count);
func_a();
}
int main()
{
printf(" function call itself test ... \n");
func_a();
}
执行了