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.
C++ 递归函数返回值理解相关推荐
- python 递归函数返回值
python递归函数返回值 以下是用递归实现有序数组的二分查找Python代码 def binarysearch(seq, x, lower = 0, upper = None): if up ...
- Python 递归函数返回值为 None 的解决办法
在使用 Python 开发的过程中,避免不了会用到递归函数.但递归函数的返回值有时会出现意想不到的情况. 下面来举一个例子: >>> def fun(i): ... i += 1 . ...
- java递归函数返回值_java基础5(方法、有无返回值、重载、递归)
方法: 定义:解决事情的办法.具有特定功能的代码块 特点: 1.方法不调用不执行 2.类中方法外,方法不能嵌套 有返回值类型的方法 定义格式: 修饰符 返回值类型 方法名([参数列表]){ 方法体语句 ...
- java递归函数返回值_Java基础——方法返回值递归
原标题:Java基础--方法返回值&递归 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 例题:写一 ...
- php 递归 返回,php递归函数返回值返回不出的问题
今天上班用到了递归函数求分类最上级,代码如下//分类递归查找上级分类 function get_cat_pid($cat_id,$data){ $sql = "select cat_id,c ...
- c语言snprintf函数怎么用,C中snprintf函数的返回值问题
平时在程序设计中,我们推荐使用snprintf, 主要是为了避免str写越界的情况发生,但是对snprintf的返回值理解有个误区 今天特别记录下. snprintf的函数原型为: int snpri ...
- 一木.溪桥学Python-09:函数的返回值、函数的作用域、作用域的优先级、递归函数、内置文件中常用方法、匿名函数lambda、高阶函数
一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-09:函数的返回值.作用域.作用域的优先级.递归函数.内置文件中常用方法.匿名 ...
- [导入]如何理解Return的返回值?
如何理解Return的返回值? 问题: 在创建和录制脚本的时候,发现在脚本vuser_init.Action.vuser_end三部分,都会有一条"return 0;"语句,那么我 ...
- 如何理解Return的返回值?
如何理解Return的返回值? 问题: 在创建和录制脚本的时候,发现在脚本vuser_init.Action.vuser_end三部分,都会有一条"return 0;"语句,那么 ...
最新文章
- 站在巨人的肩膀上,Adrian与dlib中face_recongnition模块的贡献者Adam的采访部分翻译
- gcc8之前,coredump文件无法显示正确的函数调用栈信息
- Python入门学习之函数
- 非线性方程组求解Matlab实现 (多元牛顿方法、Broyden方法、Broyden方法2)
- Dreamweaver 2019安装教程
- Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡
- Cocoapods的Podfile常见语法总结
- 想买基金,在哪个银行开户好呢?
- Spring Boot(二):Web 综合开发
- 回顾 | Apache Flink Meetup ·上海站(附PPT下载链接)
- day6:vcp考试
- 游戏编程--wpe封包教程 (新手必备)
- AMSim高级系统建模与仿真软件安装坡姐过程的踩坑心得
- 数字图像处理(六)——Matlab实现频域图像分析、FFT实现4:1的图像压缩
- php转foloat,PHP: Descrierea directivelor de bază ale php.ini - Manual
- dcx矩阵 - 打表 - 找规律
- Python实现特定格式的时间差自动计算
- python制作界面_详解python做UI界面的方法
- 如何在忙碌之余学习数据科学?
- 环境变量配过了,依然找不到路径,办法
热门文章
- oracle内存表与临时表,Oracle 临时表之临时表空间组(TTG)
- Markdown简明使用
- 通俗易懂的SpringBoot教程---day1---Springboot入门教程介绍
- linux虚拟内存api,Linux虚拟内存空间分布-Go语言中文社区
- java应用程序多态_java – 多态和n层应用程序
- gaf处理一维故障信号_【推荐文章】改进局部均值分解的齿轮箱复合故障特征提取...
- oracle面向对象的数据类型,Oracle面向对象编程OOP
- 有机晶体数据库_Cambridge Structural Database 2017 晶体结构分析软件分享
- python电影推荐系统的设计与实现_一种电影推荐系统的设计与实现
- python默认安装位置_如何更改python中pip的默认安装路径