我很难理解这段代码。我完全理解为什么 foo() 打印这些值,但我无法理解为什么 bar() 反向打印这些值。任何人都可以请无论如何解释这一点,以便我可以直观地感受到它,或者至少给我一个方向以达到赦免。
#include<iostream>
using namespace std;
void bar(int a){
cout<<"bar: "<<a<<endl;
}
void foo(int a){
if(a>0){
a -=1;
cout<<"foo: "<<a<<endl;
foo(a);
bar(a);
}else{
cout<<"Foo exited"<<endl;
}
}
int main(){
foo(10);
}
[Output]:
foo: 9
foo: 8
foo: 7
foo: 6
foo: 5
foo: 4
foo: 3
foo: 2
foo: 1
foo: 0
Foo exited
bar: 0
bar: 1
bar: 2
bar: 3
bar: 4
bar: 5
bar: 6
bar: 7
bar: 8
bar: 9
Run Code Online (Sandbox Code Playgroud)