簡體   English   中英

遞歸:不明白這個結果

[英]Recursion: don't understand this result

void func(int num){
    if(num< 3){
        printf("%d ", num);
        func(num+ 1);
        printf("%d ", num);
    }
}

假設我用func(0)調用這個函數。 為什么結果為0 1 2 2 1 0? 我不知道為什么它在減少。

這是一個堆棧跟蹤

f(0)
    print 0
    f(1)
        print 1
        f(2)
            print 2
            f(3)  // 3 < 3 == false
            print 2
         print 1
     print 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM