目录
1. 函数的概念
数学中函数的概念:它描述了一个输入值与一个或多个输出值之间的对应关系。比如:一次函数 y=kx+b ,k和b都是常数,给一个任意的x,就得到一个y值。
其实在C语言也引入函数(function)的概念,有些翻译为:子程序,子程序这种翻译更加准确一些。 C语言中的函数就是⼀个完成某项特定的任务的一小段代码。这段代码是有特殊的写法和调用方法的。
在C语言中我们一般会见到两类函数: 库函数和自定义函数。
2. 库函数
2.1 库函数的概念
C语言标准中规定了C语言的各种语法规则,C语言并不提供库函数;C语言的国际标准ANSIC规定了一 些常用的函数的标准,被称为标准库,那不同的编译器厂商根据ANSIC提供的C语言标准就给出了一系列函数的实现。这些函数就被称为库函数。
2.2 标准库和头文件
各种编译器的标准库中提供了一系列的库函数,这些库函数根据功能的划分,都在不同的头文件中进行了声明。
库函数相关头文件:https://zh.cppreference.com/w/c/header
2.3 库函数的使用方法
参考:
C/C++官方的链接:https://zh.cppreference.com/w/c/header
cplusplus.com:https://legacy.cplusplus.com/reference/clibrary/
2.4 头文件包含
库函数是在标准库中对应的头文件中声明的,所以库函数的使用,务必包含对应的头文件,不包含头文件是可能会出现⼀些问题的。
举例:16的开方(sqrt是开方的意思)
未包含sqrt的头文件:#include <math.h> (sqrt是开方的意思)
包含头文件,该程序就正常运行了。
2.5 库函数文档的一般格式
1. 函数原型
2. 函数功能介绍
3. 参数和返回类型说明
4. 代码举例
5. 代码输出
6. 相关知识链接
3. 自定义函数
3.1 函数的与法形式
lin_type 是函数返回类型
fun_name 是函数名
括号中放的是形式参数
{}括起来的是函数体
3.2 函数举例
例子:写一个加法函数,完成2个整型变量的加法操作
我们根据要完成的功能,给函数取名:Add,函数Add需要接收2个整型类型的参数(int x,int y),函数计算的结果也是整型(int)。
4. 实参和形参
使用函数的过程中,把函数的参数分为实参和形参。
如刚刚的代码:
4.1 实参
我们把第15行调调Add函数时,传递给函数的参数a和b,称为实际参数,简称实参。
实际参数就是真实传递给函数的参数。
4.2 形参
在上面代码中,第24定义函数的时候,在函数名 Add 后的括号中写的 x 和 y ,称为形式参数,简称形参。
为什么叫形式参数呢?
实际上,如果只是定义了 Add 函数,而不去调用的话, Add 函数的参数 x 和 y 只是形式上存在的,不会向内存申请空间,不会真实存在的,所以叫形式参数。
4.3 实参和形参的关系
实参和形参之间是有联系的,但是形参和实参是独立的内存空间。
我们在调试的时候可以观察到,x和y确实得到了a和b的值,但是x和y的地址和a和b的地址是不一样的,所以我们可以理解为形参是实参的⼀份临时拷贝。
5. return 语句
函数return语句使用的注意事项:
1 return后边可以是一个数值,也可以是一个表达式,如果是表达式则先执行表达式,再返回表达 式的结果
2 return后边也可以什么都没有,直接写 return; 这种写法适合函数返回类型是void的情况。
3 return语句执行后,函数就彻底返回,后边的代码不再执行
4 如果函数中存在if等分句的语句,则要保证每种情况下都有return返回,否则会出现编译错误。
6. 嵌套调用和链式访问
6.1 嵌套调用
嵌套调用就是函数之间的互相调用
例子:
这段代码中有不少函数调用
main函数调用了line1, line2 和line3
line3函数调用了line4函数
6.2 链式访问
链式访问就是将一个函数的返回值作为另外一个函数的参数,像链条一样将函数串起来就是函数 的链式访问
例子:
#include <stdio.h>
int main()
{
printf("%d", printf("%d", printf("%d", 43)));
return 0;
}
第一个printf打印的是第二个printf的返回值,第二个printf打印的是第三个 printf的返回值。
第三个printf打印43,在屏幕上打印2个字符,再返回2。
第二个printf打印2,在屏幕上打印1个字符,再返回1。
第⼀个printf打印1。
所以屏幕上最终打印:4321
标签:头文件,函数,详解,printf,return,实参,库函数 From: https://blog.csdn.net/2301_81526792/article/details/136914686