谁能告诉我下面程序输出 0 1 2 0 的原因?
#include <stdio.h>
main() {
e(3);
}
void e(int n) {
if(n>0) {
e(--n);
printf("%d",n);
e(--n);
}
}
输出为 0 1 2 0
最佳答案
这是从 main
调用 e(3)
之后的执行流程。
e(3)
e(2)
e(1)
e(0) ... return
n is now 0
print n. results in output 0
e(-1) ... return
n is now 1
print n. results in output 1
e(0) ... return
n is now 2
print n. results in output 2
e(1)
e(0) ... return
n is now 0
print n. results in output 0
e(-1) ... return
return
然后你看到了输出
0 1 2 0
关于C函数输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29216404/