目录
超重点基础内容:4. 形参和实参
1. 函数的概念
在数学里面,我们曾经了解过不少函数,一次函数,二次函数,反比例函数,高斯函数等等
而在C语言当中,函数(function)有时候被翻译为子程序
这种翻译更准确一些,因为在C语言之中,函数就是一个完成某项特定的任务的一小段代码
这段代码(函数)是有自己的书写方式和调用的方法的
C语言当中常见的两大类函数:
库函数
自定义函数
2. 库函数
2.1 标准库及其对应的头文件
C语言的国际标准里面提供了一些常用的函数的标准,被称为标准库,那不同的编译器的厂商根据国际标准所提供的库函数,都保证了这些库函数在编译器上的顺利实现
这些函数都被称为库函数
我们之前常常使用的printf,scanf就是非常典型的库函数
库函数也是函数,只不过方便于程序员不需要再去重新编写这个函数,所以把很多常见的函数都收入到了标准库里面,这样就大大节省了程序员再去写代码的时间
而我们在使用每一个如此方便的库函数的时候,我们都需要在前面写好每一个库函数所对应的头文件(可以看作是对于库函数的一个声明),我们在使用函数的同时,自然而然也需要对于各个函数提前做出一个声明,也就是头文件了
每一个库函数的相关头文件都可以参考这个网址:https://zh.cppreference.com/w/c/header
有数学相关的,有字符串相关的,有⽇期相关的等,每⼀个头⽂件中都包含了,相关的函数和类型等信息,库函数的学习不需要着急⼀次性全部学会,慢慢学习,各个击破
切忌死记硬背!!!
2.2 库函数的使用方法
库函数的学习和查看⼯具很多,最为权威的官方网址放在下面了
C/C++官⽅的链接:https://zh.cppreference.com/w/c/header
3. 自定义函数
3.1 自定义函数的介绍
自定义函数就是大多数函数的种类了,因为库函数只是包含了程序员比较常用的函数,而自定义函数就是程序员不断创新的领域了
3.2 自定义函数的语法形式
自定义函数的语法形式如下:
tyoe name(形式参数)
{
}
type指的是函数的返回类型
name指的就是函数名
括号里面放的是形式参数
{}里面的是函数体(函数如何实现对应的功能的具体编写地方)
我们可以把函数当成是一个类似于加工厂的东西,我们一般需要往函数里面去输入一些值,然后通过我们在函数体里面所编写的一些代码,从而实现我们所写的这个函数的对应的功能
注意:
函数的参数就相当于,一开始被送进工厂的原材料,函数的参数可以是void,就代表这个函数是没有参数的,如果有参数,就需要一开始交代清楚参数的类型和参数的名字,以及参数的个数
3.3 自定义函数的应用
我们现在就先写一个add(相加)函数,具有使两个数相加的功能的自定义函数
我们现在就来分析一下这个add函数是如何执行指令和操作的
首先,从函数的命名来看,我们需要做一个有意义的函数的命名,因为想获取的是一个加法函数,那么我们就直接命名为add
其次,我们先判断这个函数是否需要接收参数,如果不需要接收参数的话,我们就直接写void,表示并不需要接收参数,而add函数很明显需要接收到两个整型类型的参数,那么我们自然就提供两个整型变量的形式参数
然后,我们就在main函数(主函数)当中需要使用到这个自定义函数的时候直接写出函数名加括号,()里面放入我们想要进行操作的数据即可让函数自动完成它所需要实现的功能
值得注意的是:我们需要考虑清楚函数的参数部分的设置,一旦设置错误,就会导致代码无法运行或者函数所实现的功能与我们想要的不符合
其实对于add函数,我们还可以再进行简化
这样的add函数就是最简单的版本了,直接通过return x+y就成功实现了把参数相加并且函数最后返回的是一个相加值的问题了
4. 形参和实参
4.1 实参
实参,顾名思义,就是实际参数的意思
在我们刚刚所写的加法函数之中,在main函数里面,我们输入了a,b两个值,然后传到了函数里面,这两个值就属于实际参数,是运算过程中实际存在的
4.2 形参
形参,也就是形式参数,表示并不真正参与运算的参数,这些参数往往用来实现某种功能,比如在刚刚的add函数里面,我们所创建的x,y都属于形式参数,我们在函数体内部最后写了
return x+y
就是使这个函数最后返回的是两个参数的相加值,从而达到了赋予这个函数的功能为相加功能
这两个参数并不参与实际运算,但通过形参,我们达到了让这个函数具有某种功能的目的