与函数和递归有关

时间:2015-12-09 18:29:09

标签: c

这是我老师用于使用递归打印模式的代码。 为什么“你在这儿”印刷?我无法理解外循环。请帮助!

#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 ??

    }

}

1 个答案:

答案 0 :(得分:1)

首次在main函数中调用应用程序时,它需要返回值。除非传递给它的n为-1,否则自调用函数后面的行将发生一次,因为它在main中被调用并且必须到达函数的末尾。当自调用函数返回一个数字时,它不会结束displaymain的函数调用,return n;块中的最后一个else

逐步跟进时,最容易理解递归。所以我建议你这样做才能完全理解它。