目录
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;
}
