猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
帮一下小白。。。
怎么理解递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反?最好有个例子解释一下
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语句执行顺序正常,而递归调用语句之后的语句执行顺序相反。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C
typedef入门问题
1 回答
C++
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续