一、函数的概念
数学中我们已经见过函数的概念了,C语言也引用了函数的概念,有些翻译为:子程序。C语言中的函数就是一个完成某项特定的任务的一小段代码。这段代码有特殊的写法和调用方法。
在C语言中我们一般会见到两类函数:
库函数
自定义函数
二、 库函数
2.1 标准库和头文件
C语言的国际标准ANSI C规定了一些常用的函数的标准,被称为标准库。不同的编译器厂商根据ANSI提供的C语言标准就给出了一系列的函数实现,这些函数就被称为库函数。
printf、scanf都是库函数,库函数也是函数,只不过这些函数是现成的,我们可以直接使用。
各种编译器的标准库中提供了一系列的库函数,这些库函数根据功能划分,都在不同的头文件中进行了声明。在使用库函数时,一定要包含对应的头文件。
2.2 库函数的使用
库函数的查看链接:C library - C++ Reference (cplusplus.com)
例:sqrt
它的功能 Compute square root 计算平方根
返回值 Returns the square root of x (返回平方根)
实践:
三、自定义函数
3.1 函数的语法形式
自定义函数的形式:
ret_type fun_name(形式参数)
{
}
ret_type 是函数的返回类型。返回类型可以是void,表示什么也不返回
fun_name 是函数名。函数名是自定义的,不过函数名要尽量根据函数的作用来取
{ }里面的是函数体,函数体就时完成计算的过程
3.2 函数的举例
例:写一个加法函数,完成两个变量相加减
要完成上述的功能,先给函数取个名:Add,Add函数是计算两个数相加,所以需要接收两个整型类型的参数;函数的计算结果是整型,因此返回类型是整型
函数的参数部分需要交代清楚参数的类型,参数的个数,形参的名字
四、形参和实参
函数在使用的过程中,把函数的参数分为:形参和实参
我们根据这个代码进行解释
4.1 实参
在上面的代码中,第21~25行是函数的定义,有了函数的定义,再在31行调用Add函数的。
在调用Add函数是,传递给函数参数的a和b,称为实际参数,简称实参。
实际参数就是真实传递给函数的参数。
4.2 形参
在上面的代码中,第21行定义的时候,在函数名Add后面括号里写的x和y,称为形式参数,简称形参。
为什么叫形参呢?因为只是定义Add函数而不去调用的话,Add函数里的x和y只是形式上存在的,不会向内存申请空间,不会真实存在,所以叫形式参数。
形式参数只有在函数被调用的过程中为了存放实参传递过来的值才会申请内存空间,这个过程叫做形式的实例化。
因此形参和实参是各自是独立的内存空间。形参是实参的一份临时拷贝。
五、return语句
在函数的设计过程中,函数经常会出现return语句,return语句有一些注意事项:
1.return后边也是是一个数值,也可以是一个表达式,如果是表达式则先执行表达式,再返回表达式的结果
2.return后边也可以什么都不写,直接写return,这种代表着函数的返回类型是void
3.return语句执行后,函数就彻底返回,后边的代码不再执行
4.return返回的值和函数返回类型不一样是,系统会自动将返回的值隐式转化为函数的返回类型
5.如果函数存在if分支语句,且分支语句有一种情况返回了return,那么每一种情况下都要返回return,否则会出现编译错误
第5种情况我用代码来表示一下:
运行一下代码,出现报错了,因为else没有返回值,对其进行修改,再看看其结果