发布网友 发布时间:2022-04-26 23:02
共6个回答
热心网友 时间:2022-04-27 00:31
用我自己的话来解释,你可以看作void f(int n)被复制了很多份(每一次递归都复制了一份,递归这个词不知道要不要再解释……)当你在void f(int n)函数内调用void f(int n)时,函数内调用的void f(int n)是临时从原f中复制的一个新的函数。所以每一次递归都需要占用新的资源(所以递归如果一直不结束的话,最后会造成栈溢出)。热心网友 时间:2022-04-27 01:49
#include "stdio.h"
热心网友 时间:2022-04-27 03:24
#include "stdio.h"
void f(int n)
{
int i;
if(n>0)
{printf("%d \n",n);
f(n-1);
printf("%d \n",n);
f(n-1);
printf("%d \n",n);
}
}
main()
{
f(3);
getchar();
}
热心网友 时间:2022-04-27 05:15
建议使用开发工具,调试运行,了解函数执行步骤。热心网友 时间:2022-04-27 07:23
int i; 这个? i 用到哪里?想帮你看看。。