我试图理解C中的递归是如何工作的.任何人都可以给我一个控制流的解释吗?
#include <stdio.h>
/* printd: print n in decimal */
void printd(int n)
{
if (n < 0)
{
putchar('-');
n = -n;
}
if (n / 10) printd(n / 10);
putchar(n % 10 + '0');
}
int main()
{
printd(123);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
caf*_*caf 19
控制流看起来像这样(->函数调用在哪里)
main()
??> printd(123)
??> printd(12)
? ??> printd(1)
? ? ??> putchar('1')
? ??> putchar('2')
??> putchar('3')
Run Code Online (Sandbox Code Playgroud)