【发布时间】:2013-08-04 13:51:38
【问题描述】:
这个程序的行为方式,
fact(static int n)
{
int f=1;
if(n<=1) return 1;
else
{
f=n*fact(n-1);
return f;
}
}
函数如何调用和返回值取决于 n 以及为什么最终输出为 1。
【问题讨论】:
-
如果这是嵌入的 C 代码,
static表示参数是全局分配的;因此,该函数不可重入(无法安全递归)。 -
你必须在两种情况下都返回 f ,但是在递归调用该函数之后你最终返回 1 所以最终输出是 1。