什么是函数?
在C语言中,函数又可以被称为 “子程序”,它是一个大程序的某一个部分,由一个或多个语句块构成,负责完成某项特定任务,而且相较于其他代码,其具备相对独立性,可以用它来实现代码的模块化。
函数的分类
1.库函数
诸如printf(打印),strcpy(字符串拷贝)等基础功能函数,在C语言中基础库中提供了一系列的库函数,在使用是仅需使用#include来包含对应的头文件即可(可配合查询工具使用)
2.自定义函数
自定义函数的组成
1 | int/*函数返回值类型*/ fun/*自定义函数的名称*/(int/*参数类型*/ x) |
如上所示,即为一个自定义函数
通俗易懂,基本无需解释
3.函数的参数
函数的参数分为形式参数和实际参数
实际参数:真实传递给函数的参数
形式参数:指函数名括号后的变量,只有在只有在函数背后调用的时候才会被实例化
需要注意的是:_形参实例化之后相当于实参的一份临时拷贝_
4.函数的调用
其分为传值调用和传址调用
传值调用:函数的形参和实参分别占用不同的内存块,对形参的修改不会影响到实参
传址调用:将函数外部建立的变量的地址传给函数参数,将函数与外部变量建立联系,可以通过在函数内部来修改函数外部变量
5.函数的嵌套调用和链式访问
嵌套调用
指在一个函数里调用另一个函数
1 |
|
链式访问
把一个函数的返回值作为另一个函数的参数
1 |
|
6.函数的声明与定义
函数的声明
告诉编译器有一个函数,它的函数名,参数类型,返回值类型分别是什么,与该函数到底存在与否无关,一般放在头文件中,需要满足先声明,后使用。
函数的定义
函数的具体功能实现
7.函数递归
函数调用自身的一种程序编写技巧,会让代码看起来更简洁更美观(当然也更难)
需要满足两个条件
1.存在限制条件,条件满足后不再递归
2.每次递归更接近限制条件
例如:
1 |
|
在之后,我想针对函数的递归再另写一篇文章,因为我认为函数的递归实在是简洁明了,美观大气,并且这种类似于递归的思想我也在一些古典乐中见到过,当然这不属于编程的范畴了,算是一点杂谈。