C语言(长期更新)第6讲:函数

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.comhttps://legacy.cplusplus.com/reference/clibrary/

库函数文档的一般格式

  1. 函数原型
  2. 函数功能
  3. 参数parameters和返回类型说明
  4. 代码举例
  5. 代码输出
  6. 相关知识链接

6.3 自定义函数

------自己设计和实现的函数

6.3.1 语法形式

  • ret_type 为返回类型
  • fun_name 为函数名
  • ()内放置形参
  • {}内为函数体

6.3.2 实践

在上述例子中,我们看到了函数,形参和实参的具体使用方法。那么形参和实参之间到底是什么关系呢?下面我们就来探讨一下这个问题。

6.3.3 形参与实参

  • 变量的创建是要在内存中开辟空间的
  • 形参和实参是不同的内存空间
  • 实参传递给形参时(传参)形参会创建自己的内存空间,来保存实参

这也就是说,对形参的修改,不会影响实参。

形参可以理解为实参的一份临时拷贝

6.4 return语句

在函数的设计中,函数中经常会出现return语句,这⾥讲⼀下return语句使用的注意事项。

  1. return后边可以是⼀个数值,也可以是⼀个表达式,如果是表达式则先执行表达式,再返回表达式的结果。
  2. return后边也可以什么都没有,直接写 return; 这种写法适合函数返回类型是void的情况。
  3. return返回的值和函数返回类型不⼀致,系统会自动将返回的值隐式转换为函数的返回类型。
  4. return语句执行后,函数就彻底返回,后边的代码不再执行。
  5. 如果函数中存在if等分支的语句,则要保证每种情况下都有return返回,否则会出现编译错误。

解释:

1.比如add函数,返回值为x+y,是一个表达式,就返回表达式的计算结果;

而我们最常使用的main函数返回值为0,就是一个数;

函数中返回值可以不唯一,有灵活的运用

2.void 的意思就是空;返回类型为void就是啥值都不返回

而 return; 这样的用法一般用于如下情况:

在一个函数需要提前返回,但不需要带回任何值,则写return;

因为最终返回值是根据函数类型决定的,

所以在函数定义时函数返回类型很重要,一定要写

但是强制类型转换,可能会造成数据截断或溢出;

5.当函数返回值规定不完整,就会出现返回任意值的情况

比如我们讲上面的代码稍作修改

6.5 数组作为函数参数

前面我们使用的参数都是变量,那么数组是否也可以作为参数使用呢?当然可以。

欲知后事如何,且听下回分解,我们下节课见~


++好了今天的学习内容就到这里啦,谢谢你的陪伴,我是潼心,下次再见~如果这篇文章对你有帮助的话。请务必给主播一个一键三连,球球了,这对主播很重要~++

相关推荐
ankleless17 分钟前
C语言——关于指针(逐渐清晰版)
c语言·开发语言·指针·解引用操作符·c语言基础知识学习
打码农的篮球31 分钟前
STL——list
开发语言·c++·list
lkf1971139 分钟前
商品中心—1.B端建品和C端缓存
开发语言·后端·缓存
渣渣盟1 小时前
JavaScript核心概念全解析
开发语言·javascript·es6
阿捏利2 小时前
C Primer Plus 第6版 编程练习——第11章(下)
c语言·c primer plus
java叶新东老师2 小时前
goland编写go语言导入自定义包出现: package xxx is not in GOROOT (/xxx/xxx) 的解决方案
开发语言·后端·golang
檀越剑指大厂2 小时前
【Python系列】Flask 应用中的主动垃圾回收
开发语言·python·flask
檀越剑指大厂2 小时前
【Python系列】使用 memory_profiler 诊断 Flask 应用内存问题
开发语言·python·flask
笠码2 小时前
JVM Java虚拟机
java·开发语言·jvm·垃圾回收
橙小花3 小时前
C语言:指针、变量指针与指针变量、数组指针与指针数组
c语言·开发语言