首先看代码:

#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++ 递归函数返回值理解相关推荐

  1. python 递归函数返回值

    python递归函数返回值 以下是用递归实现有序数组的二分查找Python代码 def binarysearch(seq, x, lower = 0, upper = None):     if up ...

  2. Python 递归函数返回值为 None 的解决办法

    在使用 Python 开发的过程中,避免不了会用到递归函数.但递归函数的返回值有时会出现意想不到的情况. 下面来举一个例子: >>> def fun(i): ... i += 1 . ...

  3. java递归函数返回值_java基础5(方法、有无返回值、重载、递归)

    方法: 定义:解决事情的办法.具有特定功能的代码块 特点: 1.方法不调用不执行 2.类中方法外,方法不能嵌套 有返回值类型的方法 定义格式: 修饰符 返回值类型 方法名([参数列表]){ 方法体语句 ...

  4. java递归函数返回值_Java基础——方法返回值递归

    原标题:Java基础--方法返回值&递归 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 例题:写一 ...

  5. php 递归 返回,php递归函数返回值返回不出的问题

    今天上班用到了递归函数求分类最上级,代码如下//分类递归查找上级分类 function get_cat_pid($cat_id,$data){ $sql = "select cat_id,c ...

  6. c语言snprintf函数怎么用,C中snprintf函数的返回值问题

    平时在程序设计中,我们推荐使用snprintf, 主要是为了避免str写越界的情况发生,但是对snprintf的返回值理解有个误区 今天特别记录下. snprintf的函数原型为: int snpri ...

  7. 一木.溪桥学Python-09:函数的返回值、函数的作用域、作用域的优先级、递归函数、内置文件中常用方法、匿名函数lambda、高阶函数

    一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-09:函数的返回值.作用域.作用域的优先级.递归函数.内置文件中常用方法.匿名 ...

  8. [导入]如何理解Return的返回值?

    如何理解Return的返回值? 问题: 在创建和录制脚本的时候,发现在脚本vuser_init.Action.vuser_end三部分,都会有一条"return 0;"语句,那么我 ...

  9. 如何理解Return的返回值?

    如何理解Return的返回值? 问题:  在创建和录制脚本的时候,发现在脚本vuser_init.Action.vuser_end三部分,都会有一条"return 0;"语句,那么 ...

最新文章

  1. 站在巨人的肩膀上,Adrian与dlib中face_recongnition模块的贡献者Adam的采访部分翻译
  2. gcc8之前,coredump文件无法显示正确的函数调用栈信息
  3. Python入门学习之函数
  4. 非线性方程组求解Matlab实现 (多元牛顿方法、Broyden方法、Broyden方法2)
  5. Dreamweaver 2019安装教程
  6. Ubuntu 18.04安装NVIDIA(英伟达) RTX2080Ti显卡
  7. Cocoapods的Podfile常见语法总结
  8. 想买基金,在哪个银行开户好呢?
  9. Spring Boot(二):Web 综合开发
  10. 回顾 | Apache Flink Meetup ·上海站(附PPT下载链接)
  11. day6:vcp考试
  12. 游戏编程--wpe封包教程 (新手必备)
  13. AMSim高级系统建模与仿真软件安装坡姐过程的踩坑心得
  14. 数字图像处理(六)——Matlab实现频域图像分析、FFT实现4:1的图像压缩
  15. php转foloat,PHP: Descrierea directivelor de bază ale php.ini - Manual
  16. dcx矩阵 - 打表 - 找规律
  17. Python实现特定格式的时间差自动计算
  18. python制作界面_详解python做UI界面的方法
  19. 如何在忙碌之余学习数据科学?
  20. 环境变量配过了,依然找不到路径,办法

热门文章

  1. oracle内存表与临时表,Oracle 临时表之临时表空间组(TTG)
  2. Markdown简明使用
  3. 通俗易懂的SpringBoot教程---day1---Springboot入门教程介绍
  4. linux虚拟内存api,Linux虚拟内存空间分布-Go语言中文社区
  5. java应用程序多态_java – 多态和n层应用程序
  6. gaf处理一维故障信号_【推荐文章】改进局部均值分解的齿轮箱复合故障特征提取...
  7. oracle面向对象的数据类型,Oracle面向对象编程OOP
  8. 有机晶体数据库_Cambridge Structural Database 2017 晶体结构分析软件分享
  9. python电影推荐系统的设计与实现_一种电影推荐系统的设计与实现
  10. python默认安装位置_如何更改python中pip的默认安装路径