递归调用,不是很理解
#include <stdio.h>int fun(int n,int *s)
{
int f1,f2;
if (n==1||n==2)
*s=1;
else
{
fun(n-1,&f1);
fun(n-2,&f2);
*s=f1+f2;
}
return *s;
}
main()
{
int x;
fun (6,&x);
printf("%d\n",x);
}
为什么输出结果会是8呢!我一直没搞懂那个else里的前两个语句是怎么调用的,我分析的结果是3啊!郁闷!麻烦给解释一下,谢谢