C++栈的输出以及如何执行

来源:百度知道 编辑:UC知道 时间:2024/06/04 14:38:51
#include<iostream.h>
void fun(int *s,int n)
{
int f=10;
if(n==1||n==2)
*s=1;
else {
fun(&f,n-2);
cout<<f<<'\n';
}
}
void main()
{int x=20;
fun(&x,5);
cout<<x<<'\n';
}输出结果是1
10
20
请问是先调用N=1还是N=5开始,请高手回答高分谢谢了!!急

当然是先调用N=5,N=5里面又调用了N=3,N=3里又调用了N=1,然后N=1里面把N=3的f改成了1,再返回到N=3,N=3里面输出1,再返回N=5,N=5的f并没有被N=3改掉,还是10,所以输出10.再返回到main,main的x也没有被N=5改掉,还是20

主函数中fun(&x,5),所以首先调用N==5

先从5开始。。

先把主函数里的5带进去

先调用n=5