![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
5 深入理解函数
文章平均质量分 69
狮子座硅农(Leo ICer)
努力成为卓越的芯片研发人员!
展开
-
5.3 递归(用带空间图分析,思想很好)
我们看上图右侧存储空间的变化过程,随着函数调用的层层深入,存储空间的一端逐渐增长,然后随着函数调用的层层返回,存储空间的这一端又逐渐缩短,并且每次访问参数和局部变量时只能访问这一端的存储单元,而不能访问内部的存储单元,比如当。图中用实线箭头表示调用,用虚线箭头表示返回,右侧的框表示在调用和返回过程中各层函数调用的存储空间变化情况。是直接调用自己,有些时候函数A调用函数B,函数B又调用函数A,也就是函数A间接调用自己,这也是递归函数。,每个函数调用的参数和局部变量的存储空间(上图的每个小方框)称为一个。原创 2022-09-12 00:55:13 · 336 阅读 · 0 评论 -
5.2 增量式开发(思想很好)
这样的增量式开发非常适合初学者,每写一行代码都编译运行,确保没问题了再写一下行,一方面在写代码时更有信心,另一方面也方便了调试:总是有一个先前的正确版本做参照,改动之后如果出了问题,几乎可以肯定就是刚才改的那行代码出的问题,这样就避免了必须从很多行代码中查找分析到底是哪一行出的问题。给出两点的座标求距离,给出半径求圆的面积,这两个子问题都解决了,如何把它们组合起来解决整个问题呢?解决问题的过程是把大的问题分成小的问题,小的问题再分成更小的问题,这个过程在代码中的体现就是函数的分层设计(Stratify)原创 2022-09-12 00:32:35 · 615 阅读 · 0 评论 -
5.1 return语句
注意,虽然函数的返回值可以看作是一个临时变量,但我们只是读一下它的值,读完值就释放它,而不能往它里面存新的值,换句话说,的值,表达式的值必然是事先计算好了存在一个临时变量里的,然后函数退出,局部变量释放,语句的作用是提供整个函数的返回值,并结束当前函数返回到调用它的地方。在if-else中我们定义了一个检查奇偶性的函数,如果是奇数就打印。函数的返回值不是左值,或者说函数调用表达式不能做左值。语句对函数的返回值做判断时,函数已经退出,局部变量。在没有返回值的函数中也可以使用。在有返回值的函数中,原创 2022-09-12 00:19:53 · 611 阅读 · 0 评论