帮一下小白。。。

怎么理解递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反?最好有个例子解释一下

qq_踩了口香糖_04206687
浏览 1223回答 1
1回答

这都不会

是这样的。你可以运行一下下面这个程序。#include<stdio.h> void recursion(int n) { if(n > 5) { return; } else { printf("进入第%d次递归调用\n", n); recursion(n+1); //递归,调用自己。  printf("执行了第%d次递归调用后的语句。\n", n);  } } int main() { recursion(1); return 0; }这个程序中recursion(n+1);是递归调用,而printf("执行了第%d次递归调用后的语句。\n", n);是位于递归调用后的语句。这个程序的运行结果是进入第1次递归调用进入第2次递归调用进入第3次递归调用进入第4次递归调用进入第5次递归调用执行了第5次递归调用后的语句。执行了第4次递归调用后的语句。执行了第3次递归调用后的语句。执行了第2次递归调用后的语句。执行了第1次递归调用后的语句。可以看到,递归调用语句之前的printf语句执行顺序正常,而递归调用语句之后的语句执行顺序相反。
打开App,查看更多内容
随时随地看视频慕课网APP