C++ 递归函数返回值理解

首先看代码:

#include <iostream>
using namespace std;
int main()
{int digui(int i);int i;cin>>i;i = digui(i);cout << "main函数最后结果:"<<i<<endl;
}
int digui(int i)
{int j = 0;if (i == 0)return 1;j =digui(i - 1);return j;
}

对于递归函数不是不懂,是没有完全懂了。

本人看到这个代码的第一反应,就是digui函数中对返回值进行初始化,那递归岂不是没有任何作用。返回结果肯定是0嘛。

结果运行后是1.带着这样的疑惑我开始调试代码。

发现执行到i=0时,digui(0)=1。此时求digui(1).函数跳到j=digui(0)的位置.显然j此时等于1.相当于return 1,即digui(1)=1;

此时求digui(2).同样函数跳到=digui(1)的位置.显然j此时等于1.相当于return 1,即digui(2)=1;

........依次往下

digui(5)=1;

所以最后main函数中输出i=1.

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉树---树的深度递归理解

int Dep(Bianary *root) {if (root NULL){return 0;}int depth 0;int leftD Dep(root->lchild);int rightD Dep(root->rchild);depth leftD > rightD ? leftD 1 : rightD 1;return depth; } 递归理解&#xff1a; depth的值与是否初始化无关&#xff0c;因为…

升级锦囊 | 测试开发核心技术46讲

课程背景我是思寒&#xff0c;在测试圈里摸爬滚打了十年有余。我从外包功能测试做起&#xff0c;后进入阿里、百度等公司做了测试开发工程师、测试架构师。我发现几乎每个测试工程师都和我一样&#xff0c;职业理想都是从事测试开发的工作。尤其是近几年来&#xff0c;互联网的…

软件快捷键

Pycharm快捷键 折叠某一点&#xff1a;ctrl- 展开某一点&#xff1a;ctrl 展开一个整个函数&#xff1a;ctrl alt 折叠一个整个函数&#xff1a;ctrl alt - 所有代码折叠&#xff1a;ctrl shift- 所有代码展开&#xff1a;ctrl shift 注释代码&#xff1a;alt / visual s…

血的案例告诫 | 模拟大批量数据测试边界上限

Fiddler响应拦截数据篡改&#xff0c;实现特殊场景深度测试&#xff08;一&#xff09;利用Fiddler抓包调试工具&#xff0c;实现mock数据特殊场景深度测试&#xff08;二&#xff09;利用Fiddler抓包调试工具&#xff0c;实现神奇特殊场景深度测试&#xff08;三&#xff09;F…

Monkey稳定性测试初探(二)

记得 关注转发~~~之前写过一篇关于稳定性测试的文章&#xff1a;Monkey随机性能压测初探&#xff08;一&#xff09;01什么是稳定性测试稳定性测试&#xff0c;是在一定压力的情况下&#xff0c;对系统或某个模块持续进行长时间的操作&#xff08;一般遵循7*24小时原则&#xf…

水平方向的算子检测竖直边缘理解

-1 0 1 -1 0 1 -1 0 1 这种算子称为水平方向的算子。 是因为利用它可以检测出图像在水平方向上两侧是否存在差异 如果在水平方向上存在差异则可能是竖直边缘

Fiddler抓包 | 竟然有这些骚操作,太神奇了?

一、双击Session时&#xff0c;使请求页始终显示到“webform”tab页&#xff0c;使响应页始终显示到”json”tab页在QUICK EXEC命令执行窗口&#xff0c;执行&#xff1a;PREFS SET fiddler.ui.inspectors.request.alwaysuse "WebForms"PREFS SET fiddler.ui.inspect…

卷积核旋转180度理解

卷积中卷积核旋转180 相关中不旋转 其实在我们计算卷积时&#xff0c;对应元素相乘再相加为中心元素的致之前。这是基于对卷积核已经旋转180的前提。 为什么要旋转&#xff0c;是与公式相关的。 如果直接看推导公式。应该是卷积核未旋转前和图像的运算。

pycharm连接sqlite

进行创建上了一个Django项目之后&#xff0c;进行点击 菜单中的view 菜单。 进行点击了view菜单之后&#xff0c;进行点击下拉菜单选中为tool windows的选项。 弹出了下拉下一级菜单选中为 database 的选项。 弹出了database的选项之后&#xff0c;进行点击 添加 按钮。 弹出了…

抓包工具mitmproxy | mitmweb基本用法(二)

上一篇&#xff1a;我们分享了抓包工具mitmproxy环境配置使用&#xff08;一&#xff09;这一篇我们主要介绍下mitmweb抓包工具的基本用法一、mitmproxy介绍mitmproxy是Python编写的一款功能完善的代理工具&#xff0c;mitmproxy是一款支持拦截HTTP和HTTPS请求和响应并即时修改…

opencv Mat push_back

Mat::push_back 将元素添加到矩阵的底部。 C: template<typename T> voidMat::push_back(const T& elem) C: void Mat::push_back(const Mat& elem) 参数 elem –增加的一个或多个元素。 该方法将一个或多个元素添加到矩阵的底部。他们是模拟相应的 STL 向…

mitmproxy抓包 | Python实时生成接口自动化用例

抓包工具mitmproxy环境配置使用&#xff08;一&#xff09;抓包工具mitmproxy | mitmweb基本用法&#xff08;二&#xff09;前面已经给大家分享了mitmproxy的环境配置和基本使用&#xff0c;文章浏览量很高&#xff0c;相信对抓包工具感兴趣的朋友&#xff0c;已经熟练运用起来…

mitmproxy抓包 | Python实时生成接口自动化用例(三)

抓包工具mitmproxy环境配置使用&#xff08;一&#xff09;抓包工具mitmproxy | mitmweb基本用法&#xff08;二&#xff09;前面已经给大家分享了mitmproxy的环境配置和基本使用&#xff0c;文章浏览量很高&#xff0c;相信对抓包工具感兴趣的朋友&#xff0c;已经熟练运用起来…

To disable deprecation,,use _CRT_SECURE_NO_WARNINGS

解决方法&#xff1a;ok&#xff0c;也就是加入一个_CRT_SECURE_NO_WARNINGS的问题。 转载自https://blog.csdn.net/guoming0000/article/details/8838810 或者在cpp文件最顶端添加&#xff1a;#define _CRT_SECURE_NO_WARNINGS

测试管理 | 基于风险的测试

基于风险的测试风险是指负面或不希望发生的后果或事件发生的可能性。当引起客户、用户、参与者或干系人对产品质量或项目成功的信心减弱的问题可能发生时&#xff0c;风险就存在。当潜在问题主要影响的是产品质量时&#xff0c;它们被称为质量风险、产品风险或产品质量风险。而…

听说全链路压测已经杀疯了?劝你别盲目!

不知道大家发现没&#xff0c;阿里、京东、字节、美团、饿了么、滴滴、陌陌等大厂的技术文章里&#xff0c;最近频繁提到全链路压测在企业内部的落地。本想抱着拜读一二的心理去看&#xff0c;结果一旦涉及到具体的落地细节&#xff0c;他们却都跟约好了一样三缄其口。不怪我眼…

opencv Hog Demo

需注意此代码要在Release x64之下运行 #include <iostream> #include <stdexcept> #include <opencv2/objdetect.hpp> #include <opencv2/highgui.hpp> #include <opencv2/imgproc.hpp> #include <opencv2/imgcodecs.hpp> //Release x64…

上海浦东新区公共租赁住房申请攻略

一、申请地点、接待时间&#xff1a;我司受理中心试行一周七天工作制&#xff0c;每周二、日仅受理材料递交、政策咨询、材料申领业务&#xff0c;合同签订及收费工作等请在每周一、三、四、五、六前来办理。请广大申请人、租户予以配合&#xff0c;感谢大家长期以来的支持。受…

图像分类 数据准备(将文件夹中所有图片路径写到TXT文件中)

0文件夹里都是负样本&#xff0c;1文件夹的图像都是正样本图片&#xff0c;接下来就是生成图片的描述文件。 进入控制台 进入你的0/1文件夹下&#xff0c;输入以下命令&#xff1a; dir /b/s/p/w *.jpg > pos.txt&#xff0c;dir /b/s/p/w *.jpg > neg.txt&#xff0c;…