函数的基本用法
- 函数是完成特定功能的代码模块,函数返回值类型要和函数的数据类型保持一致
- 主函数前做函数声明,有助于代码的阅读
函数的参数传递
全局变量在函数体外说明的变量,在程序中的每个函数中都可见,
函数调用的位置不同,程序的执行结果可能会受到影响复制传递方式,调用函数将实参传递给被调用函数,被调用函数创建同类型的形参并进行运算
地址传递方式,按地址传递,实参为变量的地址,而形参为变量同类型的指针.
被调用函数中对形参的操作将直接改变实参的值.
数组的传递
全局数组
复制传递
- 实参为数组的指针,形参为数组名(本质是指针),一维数组传参数传递的是数组名,还要传递数组长度
地址传递
- 实参为数组的指针,形参为同类型的指针变量
- 数组名与指针的对应,多级指针与行列的地址
指针函数
指针函数是只一个函数的返回值为地址量的函数,(区别概念函数指针)
指针函数的返回值类型
- 变量的地址,如果为动态变量,会改变地址,那么通过地址传参就会出现结果不符的问题.
程序结束销毁
1. 通过static修饰符修饰,
2. 通过设置全局变量 ,全局变量影响全局
3. 通过设置(字符串,为例)常量 无法修改
4. 通过malloc申请动态内存空间
递归函数
- 递归函数是之一个函数的函数体中直接或简介调用了该函数自身
- 递归函数调用的执行过程分为两个阶段
- 递推阶段: 从源问题出发,按递归公式递推从未知到已知,最终达到递归终止条件
- 回归阶段: 按递归终止条件求出结果,逆向逐步带入递归公式,回归到源问题求解
函数指针
函数指针用来存放函数的入口地址,函数名代表了函数的入口地址
声明形式 :
<数据类型>(*<函数指针名称>)(<参数列表说明>);函数指针数组