请在下面找到显示一些基于递归的操作的代码。我希望有人能解释一下这个递归是如何工作的?
#include <stdio.h>
int func(int);
main()
{
int ret = 0;
ret = func(6);
printf("The val is %d\n",ret);
}
int func(int m)
{
if((m==0)||(m==1))
{
return 1;
}
else
{
return (func(m-1)+func(m-2));
}
}
执行时,val的值为13。请有人解释一下这个展开操作是如何在堆栈中发生的