函数
在C语言中,函数意味着功能模块。一个典型的C语言程序,就是由一个个的功能模块拼接起来的整体。也因为如此,C语言被称为模块化语言。
对于函数的使用者,可以简单地将函数理解为一个黑箱,使用者只管按照规定给黑箱一些输入,就会得到一些输出,而不必理会黑箱内部的运行细节。
函数的定义
- 函数的格式
- 函数头
- 函数名称
- 参数列表
- 函数输入的数据类型
- 一个函数可以输入一个参数或多个参数,亦可以不需要参数
- 返回类型
- 函数输出的数据类型,一个函数可以不返回数据,也能只返回一个数据
- 函数体
- 函数功能的内部实现
- 函数头
int max(int a, int b)//返回类型 函数名(参数1,参数2……)
{
return a < b ? a : b;//函数体
}
形参和实参
- 概念
- 形参
- 函数调用中的参数
- 作用域当前函数内,执行完毕释放形参
- 实参
- 函数定义中的参数
- 形参
- 关系
- 实参与形参的类型和个数必须一一对应
- 形参的值由实参初始化
- 形参与实参位于不同的内存区域,彼此独立
函数调用的流程
函数调用期间,进程的上下文会被切换到被调函数,被调用函数执行完毕后切换回去

局部变量与栈内存
任何函数在调用时会先开辟栈内存, 执行,执行完毕后释放栈内存
- 局部变量
- 被大括号{}包含的变量
- 局部变量的特点
- 只能在该函数可见,函数外不可见
- 函数退出后,局部变量所占内存立即被系统释放
- 某函数内的局部变量,存储在该函数特定的栈内存中
- 遵循从高地址到低地址分配原则
- 不适合用来分配大尺寸变量
- return之后不可再访问函数局部变量,返回一个局部变量的地址通常是错误的
Comments NOTHING