void func(int num){
if(num< 3){
printf("%d ", num);
func(num+ 1);
printf("%d ", num);
}
}
假设我用func(0)调用此函数。 为什么结果为0 1 2 2 1 0? 我不知道为什么它在减少。
答案 0 :(得分:11)
这是一个堆栈跟踪
f(0)
print 0
f(1)
print 1
f(2)
print 2
f(3) // 3 < 3 == false
print 2
print 1
print 0