这是递归调用 语句 f=fun(n-1)*n; 是指在函数中调用函数本身,同时所传的参数减一,直到n=1时,返回值,并一步一步的返回,可以在草稿纸上写若干个该函数帮助理解,再带回返回值,就可以了
这是递归调用。也就是说,你输入的是4,会有一个返回值回到fun函数继续执行这个函数,直到return (f),结束这个函数。
当n=4,在fun函数中是执行f=fun(n-1)*n语句。而其中还有fun(n-1),这就关系递归调用了。将n-1的值也就是3,同上执行语句,以此类推就是4*3*2*1
自身调用,这就是递归啊。具体就是,进入递归前保存断点到堆栈,完成后返回断点。也就是说,4的时候调用n-1也就是3,再调用2,调用1,然后1的时候没有递归,一共用了3个堆栈空间,是4,3,2的断点,再分别按顺序返回断点运行,返回时带结果和参数,最后输出总结果。