c加加递归返回上一个函数,会执行上一个函数没执行完的程序吗
1个回答
关注
展开全部
在C++中,当一个函数调用另一个函数时,调用函数的执行被暂停,直到被调用的函数执行完毕并返回结果。递归函数也不例外,当递归函数调用自身时,当前函数的执行被暂停,直到递归函数执行完毕并返回结果后,当前函数才会继续执行。因此,当递归函数返回上一个函数时,上一个函数会从上一次暂停的地方继续执行,而不是从头开始执行。
咨询记录 · 回答于2023-03-16
c加加递归返回上一个函数,会执行上一个函数没执行完的程序吗
在C++中,当一个函数调用另一个函数时,调用函数的执行被暂停,直到被调用的函数执行完毕并返回结果。递归函数也不例外,当递归函数调用自身时,当前函数的执行被暂停,直到递归函数执行完毕并返回结果后,当前函数才会继续执行。因此,当递归函数返回上一个函数时,上一个函数会从上一次暂停的地方继续执行,而不是从头开始执行。
有些递归函数没有return的也会自动返回吗
在C++中,当一个函数中调用另外一个函数时,被调用的函数会在执行完毕后返回到调用函数的位置继续执行。递归函数也不例外,递归函数调用自身时,当前函数的执行被暂停,直到递归函数执行完毕并返回结果后,当前函数才会继续执行。因此,当递归函数返回上一个函数时,上一个函数会从上一次暂停的地方继续执行。至于递归函数没有return的情况,如果递归函数没有return语句,则会根据函数的返回类型自动返回一个默认值。例如,如果返回类型是int类型,则会返回0;如果返回类型是bool类型,则会返回false。但是,这种情况下返回的值可能不是我们所期望的,因此为了避免出现意外的结果,建议在递归函数中显式地使用return语句返回值。
没有return返回的值,应该是上一个函数变量的值吧
是这样吗
在C++中,当一个函数中调用另外一个函数时,被调用的函数会在执行完毕后返回到调用函数的位置继续执行。递归函数也不例外,递归函数调用自身时,当前函数的执行被暂停,直到递归函数执行完毕并返回结果后,当前函数才会继续执行。因此,当递归函数返回上一个函数时,上一个函数会从上一次暂停的地方继续执行。如果上一个函数没有执行完毕,那么它会从暂停的地方继续执行,直到执行完毕。对于递归函数没有return语句的情况,函数会根据其返回类型自动返回一个默认值,例如,如果返回类型是int类型,则会返回0;如果返回类型是bool类型,则会返回false。如果递归函数没有return语句,那么上一个函数返回的就是上一个函数变量的值。在这种情况下,如果上一个函数没有执行完毕,那么它会继续执行,直到执行完毕并返回结果。如果上一个函数需要返回递归函数的返回值,则需要在递归函数中使用return语句返回值。
#includeusing namespace std;void hannoi(int n,char A,char B,char C){//n个盘子,起始位置,中转位置,终止位置 if(n==1){ cout<<"将圆盘"< n; cout<
第一条为什么输出a到c?不应该是a到b吗?
可能是注释写错了,第一步应该是将n-1个盘子从A移动到B,而不是从A移动到C。