参数的类型:库函数,自定义函数
函数的参数:实际函数(实参),形式参数(形参)
实际参数是真实传给函数的常量,变量,表达式,函数等,必须有确定的值
形式参数是函数名后括号中的变量,只有在函数被调用的过程中才实例化,调用完 成后自动销毁,只在函数中有效
*形参实例化后相当于实参的一份临时拷贝
函数的调用:传值调用,传址调用
传值调用:函数的形参和实参分别占有不同内存块,对形参的修改不影响实参
传址调用:把函数外部创建变量的内存地址传递给函数参数,让函数和函数外边的变量建立真正的联系,即函数内部可以直接操作函数外部的变量
*有返回值的可以传值,没有返回值的就传址
函数的声明:先声明后使用,放在头文件中
函数的定义:函数的具体实现,交代函数的功能实现。放在源文件中
头文件(add.h)的固定格式
![53c4a5c30a2447e9b683e4a42b260af6.png](https://img-blog.csdnimg.cn/53c4a5c30a2447e9b683e4a42b260af6.png)
引用头文件(add.h中的ADD函数:
![fa2022436f4f49978a45d2265e9e7892.png](https://img-blog.csdnimg.cn/fa2022436f4f49978a45d2265e9e7892.png)
函数的递归:程序调用自身的编程技巧
递归的必要条件:1.存在限制条件,当满足这个限制条件时,递归不再继续
2.每次递归后越来越接近这个限制条件
递归常见错误:栈溢出(stack overflow)
![73b5c49723414d408ea7cc97521cb0f0.png](https://img-blog.csdnimg.cn/73b5c49723414d408ea7cc97521cb0f0.png)