有人能解释一下这个递归函数在c++中是如何工作的吗



我对Deitel书中的C++问题的编程和求解已经有一段时间了,当我想象这个递归函数时,我感到困惑,在这个函数中,一个由10个元素组成的数组和第一个元素编号(current=0(被发送到函数。

我的问题是,在if块中执行someFunction函数后,该函数是再次返回到函数定义,还是继续执行下一条语句?

void someFunction(const array<int , arraySize>& b, size_t current)
{
if (current < b.size())
{
someFunction(b, current + 1);
cout << b[current] << " ";  
}
}

所有函数调用的工作方式相同。从函数调用返回后,将使用函数调用后的下一条语句继续执行。

在这方面,递归函数调用也没什么不同。递归函数调用和非递归函数调用之间的唯一区别是调用哪个函数:相同的函数还是不同的函数。

请注意,函数调用本身再次开始执行该函数,但在它返回后,会发生与从任何其他函数调用返回时相同的事情。

最新更新