二、C语言2.5函数1.功能能够避免重复性代码可以让程序模块化2.函数三种形式1函数定义函数类型 函数名(数据类型1 形参1, 数据类型2 形参2, ...){函数体;return 返回值;}函数名与变量名要求保持一致形参形式参数用来展示函数对数据的处理的方式函数类型函数运行结果的类型函数类型如果不写默认为int类型返回值函数的运行结果返回值类型与函数类型不一致时以函数类型为准2函数的调用函数名(实参1, 实参2, ...);调用可以通过函数名加实参使用函数主调函数主动调用函数的函数被调函数被别人调用的函数传参主调函数调用被调函数会将实参的值传递给形参实参个数与形参个数必须一一对应如果实参与形参类型不匹配则将实参类型强制类型转换为形参类型再传参函数调用结果类型为函数类型函数调用结果的值为函数的返回值3函数的声明如果被调函数在主调函数下方定义需要在主调函数上方声明被调函数如果被调函数在主调函数上方定义不需要声明被调函数4变量的作用域和生存周期1. 变量的作用域局部变量变量作用域在定义该变量最近的大括号内全局变量变量的作用域在本文件中均可使用2. 变量的生存周期变量从被开辟空间到空间被回收的整个过程称为生存周期5变量的存储类型1.变量的定义存储类型 数据类型 变量名;2.存储类型1自动型存储、局部变量默认auto将变量存放在栈区局部变量未经初始化为随机值执行到变量定义时为变量开辟空间执行到超过变量作用域范围被回收2. 寄存器存储register将变量存放在CPU内部的寄存器中如果寄存器存满了等价于auto类型3.外部声明extern声明变量或者函数是外部存储4.静态存储static将变量存放在静态区中未经初始化时为0值编译代码时为变量分配空间执行时加载到数据区中程序结束回收空间限定变量/函数作用域只能在本文件中使用防止多文件编程时变量名或函数名冲突6函数传参1. 值传递实参将值传递给形参形参拿到实参的值实现后续的操作