我正在做一个相当简单的跟踪练习,但是我不完全理解为什么解决方案是这样的......
void f( int n) {
if (n>0) {
f(n-1)
cout << n << " ";
}
}
int main () {
f(5);
return 0;
}
答案是 1 2 3 4 5,但是我想知道这是怎么回事,因为每次调用函数 f 时,它都不会到达 cout 行……我知道有一个堆栈系统,其中最后一个实现的函数是看着,然而,直到它返回一个值乘以前一个 n 的阶乘示例,我不明白这有什么相似之处。请不要再使用阶乘示例,我明白,但我不明白 cout 是如何在这里实现的。谢谢你的帮助。