欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > c语言笔记 静态函数和递归函数

c语言笔记 静态函数和递归函数

2025/3/14 21:54:50 来源:https://blog.csdn.net/2201_75840339/article/details/146219435  浏览:    关键词:c语言笔记 静态函数和递归函数

目录

1.静态函数

为什么要有静态函数呢?

用static修饰的函数这样做有什么好处呢?

2.递归函数

图解:​编辑

代码验证:


1.静态函数

静态函数就是被static修饰的函数;

为什么要有静态函数呢?

        背景知识:函数是可以跨文件使用的,也就是说函数a在文件1.c下被定义,也可以在2.c文件下使用。
所谓的静态函数就是使其函数只能在本文件内使用,在其前面加上static修饰。用staic修饰的函数可以缩小可见范围。

问:用static修饰的函数这样做有什么好处呢?

这样可以避免在其他文件中出现同名称的情况,避免互相影响。

2.递归函数

定义:一个函数函数不断调用自己
特征:
  • 递归函数必须要有退出的条件,否则就会进入无线循环,导致栈内存满了而出现段错误;
  • 递归函数包含两个过程,逐渐递进和逐渐回归过程。
图解:
板书代码:
递归函数的return返回值必须要退出有条件,在返回值中调用自己,使其不断进入函数内存去接受另外一个返回值,在从最里面退出
第一次返回值:3*jiecheng(2)      //进入到jiecheng(2)里面
第二次返回值:   2*jiecheng(1)    //jiecheng(2) 返回2*jiecheng(1)
第三次返回值:      return 1     //jiecheng(1)  返回1也可以理解为3*jiecheng(2)3*2*jiecheng(1)3*2*1

图解:

每一次调用函数,都会在栈内存分配一块空间给他使用,可以理解为第一次return返回的值是一个浓缩的值,它内含着很多次的调用。

代码验证:

#include <stdio.h>
#include <stdlib.h>int mi(int a, int n)
{if (n  == 0){return 1;}return mi(a, n - 1) * a;
}
int main(void) 
{int a = 7, n = 4;// 7的4次幂   7*7*7*7;int he = mi(a, n);printf("%d\n", he);return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词