这是我老师用于使用递归打印模式的代码。 为什么“你在这儿”印刷?我无法理解外循环。请帮助!
#include<stdio.h>
#include<stdlib.h>
int display (int n)
{
printf("\nFunctionCalled\n");
if (n==-1)
{
return n;
}
else
{
display (n-1);
printf("Are You Here ");
for (int i=0;i<=n;i++)
{
printf("*");
}
printf("\n");
return n; // where is this value being returned ??
}
}
答案 0 :(得分:1)
首次在main函数中调用应用程序时,它需要返回值。除非传递给它的n
为-1,否则自调用函数后面的行将发生一次,因为它在main
中被调用并且必须到达函数的末尾。当自调用函数返回一个数字时,它不会结束display
中main
的函数调用,return n;
块中的最后一个else
。
逐步跟进时,最容易理解递归。所以我建议你这样做才能完全理解它。