C语言(长期更新)
第6讲:函数
跟着潼心走,轻松拿捏C语言,困惑通通走,一去不回头~欢迎开始今天的学习内容,你的支持就是博主最大的动力。
知识回顾
上节课我们针对对数组的知识内容做了一些练习,今天我们来学习新课函数的内容,坐稳了,我们发车,gogogo!
6.1概念
定义:在数学中我们就接触过函数,比如一次函数y=kx+b;
C语言中,函数(function)又称为子程序,为完成某一特定任务的一小段代码。
一个大的计算任务可以分解为多个小任务,由不同函数分别完成。
可以重复使用,提高开发软件的效率。
类别:在我们前面学习的内容中我们已经接触到了一些简单的代码,
比如在猜数字游戏中使用过的menu() game(),这就属于自定义函数;
像printf() scanf(),这就属于库函数。
下面我们分别学习这两类C语言中最常见的函数。
6.2库函数
——标准库中提供的函数
6.2.1 标准库和头文件
概念:
C语言标准规定了C语言各种语法规则(if for语句 函数 数组怎么写),却不提供库函数。
C语言的国际标准ANSI C规定了一些常用函数的标准,称为标准库。
编译器厂商据ANSI提供的标准库给出一系列函数实现,成为库函数。
好处:常用函数能够直接使用,快捷高效,且保证了代码的质量
这些库函数会根据功能的划分,在不同的头文件中进行声明,
在使用时必须包含对应的头文件。
库函数相关头文件:https://zh.cppreference.com/w/c/header
(网址中zh指中文,改为en为英文网站)
6.2.2 库函数使用方法
C/C++官方的链接:https://zh.cppreference.com/w/c/header
cplusplus.com:https://legacy.cplusplus.com/reference/clibrary/
库函数文档的一般格式:
- 函数原型
- 函数功能
- 参数parameters和返回类型说明
- 代码举例
- 代码输出
- 相关知识链接
6.3 自定义函数
——自己设计和实现的函数
6.3.1 语法形式
- ret_type 为返回类型
- fun_name 为函数名
- ()内放置形参
- {}内为函数体
6.3.2 实践
在上述例子中,我们看到了函数,形参和实参的具体使用方法。那么形参和实参之间到底是什么关系呢?下面我们就来探讨一下这个问题。
6.3.3 形参与实参
- 变量的创建是要在内存中开辟空间的
- 形参和实参是不同的内存空间
- 实参传递给形参时(传参)形参会创建自己的内存空间,来保存实参
这也就是说,对形参的修改,不会影响实参。
形参可以理解为实参的一份临时拷贝。
6.4 return语句
在函数的设计中,函数中经常会出现return语句,这⾥讲⼀下return语句使用的注意事项。
- return后边可以是⼀个数值,也可以是⼀个表达式,如果是表达式则先执行表达式,再返回表达式的结果。
- return后边也可以什么都没有,直接写 return; 这种写法适合函数返回类型是void的情况。
- return返回的值和函数返回类型不⼀致,系统会自动将返回的值隐式转换为函数的返回类型。
- return语句执行后,函数就彻底返回,后边的代码不再执行。
- 如果函数中存在if等分支的语句,则要保证每种情况下都有return返回,否则会出现编译错误。
解释:
1.比如add函数,返回值为x+y,是一个表达式,就返回表达式的计算结果;
而我们最常使用的main函数返回值为0,就是一个数;
函数中返回值可以不唯一,有灵活的运用
2.void 的意思就是空;返回类型为void就是啥值都不返回
而 return; 这样的用法一般用于如下情况:
在一个函数需要提前返回,但不需要带回任何值,则写return;
3.
因为最终返回值是根据函数类型决定的,
所以在函数定义时函数返回类型很重要,一定要写
但是强制类型转换,可能会造成数据截断或溢出;
5.当函数返回值规定不完整,就会出现返回任意值的情况
比如我们讲上面的代码稍作修改
6.5 数组作为函数参数
前面我们使用的参数都是变量,那么数组是否也可以作为参数使用呢?当然可以。
欲知后事如何,且听下回分解,我们下节课见~
好了今天的学习内容就到这里啦,谢谢你的陪伴,我是潼心,下次再见~如果这篇文章对你有帮助的话。请务必给主播一个一键三连,球球了,这对主播很重要~