c语言的函数就是用来实现某种功能的,如果说我们的程序代码都写在main函数中,这样会显得很难读懂,而且代码太长过于冗余,显得没有质量。所以我们可以把一些功能用分函数的方法实现功能独立分开,实现c程序的工整还有方便我们或者读者读懂。
如果我们都把程序的代码全部写在主函数内,要是出现错误,我们要修改起来比较麻烦,要是分函数写代码,我们可以精准的知道是哪个功能出现错误
一个经典的c程序就是由一个个功能模块拼起来的整体,所以c语言也叫做模块化语言。
函数的定义
返回类型 函数名(参数列表)
{
函数体
}
在C语言中,函数本身并不是全局变量。函数和全局变量是两个完全不同的概念,它们有不同的用途和特性。
- 返回类型:我通过一个什么类型的变量来接受这个返回值
- 参数列表:我们需要往函数传什么数据,地址还是数值。
- 函数体:具体实现的功能代码
- 作用域:函数本身是全局的,可以在程序的任何地方被调用(只要在调用之前已经声明)。
- 存储:函数的代码存储在程序的代码段中,而不是数据段。
函数语法汇总
- 函数的返回类型如果是void 那么表示函数不返回任何数据
- 函数的参数列表如果是void 那么表示我们不需要传任何数据给它
- 如果在函数中出现return 表示退出函数 1.有返回类型,那么return就会放回该类型的数据回去 2.void类型 return 不用带任何数据
函数的实参与形参
实参:主函数中传进函数的数据,被称为函数的实参部分--函数调用时传的数据
形参:函数用来接受主函数传进来的类型,被称为函数的形参--函数的参数
函数实参与形参的区别
- 实参与形参的类型时相互匹配的
- 实参与形参在内存不同的区域,相互独立
- 形参的初始化数值是实参给的,由实参初始化
函数的实参是传地址还是传值?
- 传的是地址那么我们可以修改到主函数内的变量值;指针
- 传值的情况下是没有办法改变主函数内的变量值
所以如果是要改变主函数的数值那么就传地址,如果是单纯的想函数内部改变值那我们就传数值就好。