代码之家  ›  专栏  ›  技术社区  ›  Pengcheng

这个简单的递归函数的输出是什么?你能详细解释一下吗?

  •  0
  • Pengcheng  · 技术社区  · 6 月前
    void test(int start)
    {
        for(int i=start; i<2; i++)
        {
            printf("%d", start);
            test(i+1);
        }
    }
    
    --> test( 0 );
    

    我知道输出将是0-1-0,但我不明白最后一个0是怎么来的?有人能帮我理解一下吗?

    如果for循环变为

    for(int i=start; i<3; i++)
    

    提前感谢

    1 回复  |  直到 6 月前
        1
  •  3
  •   TobiMoss    6 月前

    您正在打印 start ,但似乎正在考虑打印出来 i

    |Variables    | Output|
    |-------------|-------|
    |start=0, i=0 | 0     |
    |start=1, i=1 | 1     |
    |start=0, i=1 | 0     |