C语言第五节 函数
1、函数含义(什么是函数):
• 函数是具有特定功能的代码段。
• 通俗来说:一连串语句组合在一起,实现了某一功能,我们为它们起了一个名字。之后就可以使⽤用这个名字来替代这些语句。
• 函数的使用可以省去重复代码的编写,⼤大简化程序,提高开发效率。
2、函数分类:
1> 从函数定义上来看,函数可分为:
• 库函数(系统提供好的函数,例如printf);
• 自定义函数(开发者⾃自⼰己写的函数);
2> 从返回值、参数有无来分,可分为四类:
• 无参无返回值;
• 无参有返回值;
• 有参无返回值;
• 有参有返回值;
3、函数定义
函数定义的格式:
返回值类型 函数名(参数列表){
函数体;
}
• 返回值类型:函数的结果值类型,函数不能返回数组。 指定返回类型是void类型说明函数没有返回值。
• 函数名:函数名命名规范和变量名命名规范一样。
• 参数列表:每个形式参数的前面说明其类型,即使几个参数具有相同的数据类型,也必须对每个形式参数分别进行类型说明。形式参数⽤用逗号进行分隔,就算没有参数函 数后⾯面的()也不能省略,可以写成(void)。
• 函数体:函数功能的实现。
4、函数的返回值(return)
• 函数的返回值称为函数的值,只能通过return语句返回给主调函数。
• 一个函数只能有一个返回值。
• 函数即使没有返回值也可以使用return来结束函数的执行,回到主调函数。
• return后面的语句不再执行。
5、函数声明
指的就是函数的描述,也叫函数原型。
• 两种情况:1、函数定义出现在主调函数之前,可以省略函数声明。
2、函数定义出现在主调函数之后,需要提前声明函数。
//main函数从上往下执行,不事先声明main函数找不到。
• 函数声明尽管可以省略,从规范来讲,不要省略。
6、函数调⽤
既由函数名和跟随其后的实际参数列表组成,其中实际参数列表⽤()括起来。
• 函数调用后边始终跟着分号, 即使没有参数也要加上()。
• 函数的调⽤用, 会产⽣生程序的跳转。
7、形参和实参
• 形参(形式参数)
出现在函数定义中,以假名字来表示函数调用时需要提供的值。
//作⽤用范围为整个函数范围。
• 实参(实际参数)
出现在函数调用中的表达式。
注意:函数调用时,形参会拷贝实参的值参与运算,改变形参的内容并不会影响实参的内容,因为这是两块不同的内存空间。
8、函数的嵌套调用和递归调用
1> C语⾔言不允许函数嵌套定义,但是允许函数嵌套调⽤用;
• 函数嵌套定义 : 在⼀一个函数定义内再去定义⼀一个函数;
• 函数嵌套调⽤用 : 在⼀一个函数内去调⽤用另⼀一个函数。
2> 函数在执行过程中调用函数本身即为函数的递归调用;
• 一定要有结束出口,否则无法结束。