他好像在执行cout<<"n!="<<fact(n)<<endl;
这个地方的时候他会重新调用一下fact函数然后重新判断
对,就是这样的,详细的说,应该是从第一次执行fact(n)以后,进到函数体里,会不断的调用fact函数,直到遇到终止信息!
另外个人觉得这里没有动态开辟什么啊?你认为哪个是动态开辟的变量呢?
现在退一步老说,就算有吧,我认为是这样的,当遇到fact(n)的时候,实参n传递给形参,然后就执行里面的函数,就算每次都重新调用,但是你可以理解为这全部调用都属于一个整体的大函数,是不可分割的,这样的话,所谓的变量调用完成,就是cout<<"n!="<<fact(n)<<endl这里的fact(n)函数完成,也就是main函数基本结束了,这时候也确实释放动态开辟的东西!