C语言教程(006)-认识第一个C语言程序(中·函数的概念)

2019-09-15  本文已影响0人  爱学习的老周

函数的概念

​ 讲函数之前,先粗略地讲一下什么叫变量:

你打游戏的时候,你的人物被怪打了,血条会减少,血条为0时,人物会死亡,有的游戏支持人物复活。血条就是一个变量,人物的死,和活,也是变量。变量是参与程序流程的量。变量有很多类型,比如整型,也就是整数类型,可以用在人物的血条上;布尔型,只有真和假,可以用在人物的死或活上。等等。

​ 有一天你很想吃饺子(别问为什么,想吃就对了),于是你打算自己做饺子。

​ 当你开始做这件事的那一刻,你就已经进入了主函数,函数名为main

​ 你做饺子的过程分为大致分为以下几个步骤:

1、去菜市场买食材,即肉,面粉等。

2、把肉剁碎,和面并擀成饺子皮。

3、包饺子。

4、下锅。

​ 吃了饺子之后,你对自己的手艺很满意,你觉得自己也可以开一家饺子馆(就是这么膨胀),但是你想到将来每天需要做这么多饺子,老方法效率太低,肯定忙不过来。你打算制造一个机器,这个机器的功能如下:

本质上,函数是两个集合之间的映射关系,也就是自变量和因变量之间的映射关系。

​ 这台包饺子的机器,就是一个函数,它表示食材和饺子的映射关系。

​ 在数学中,一般将自变量用x表示,映射关系表示为f,因变量表示为y=f(x)。

​ 在编程语言中,自变量叫参数,映射关系就是函数,把函数视为一个整体,那么因变量就叫返回值
​ 观察下面这个函数:

int temp(int a, int b, char c)
{
//函数体省略
int d = a + b;
    return d;
}

​ 函数名称前面int就是一种数据类型,叫做整型。它限定了返回值(即因变量y)只能是整数。

​ a, b, c叫做形式参数,简称形参。之所以叫形式参数,是因为它没有具体值,只是一个代号,在你编写函数的时候需要用到它。例如你写一个y=x+1的函数,它代表的是x和y之间的映射关系,而这里的x是个代号,没有具体值。

​ 只有当你调用函数时,才需要给函数传递一个值作用来参与函数体内部的运算,这个实际的值叫做实际参数,简称实参。你将x=5代入函数y=x+1,这个5就是实参。

​ 形参限制了实参的数据类型,例如temp函数第一个参数只能填入整型,第二个也是,第三个只能是字符。就好像放肉的供料口只能肉,放面粉的供料口只能放面粉。但是放多少肉,多少面粉,取决于实参大小。

​ 如果一个函数没有返回值,则在函数名称前用void取代int。就好比你有一个垃圾分类机器,你并不关心被处理掉的垃圾去了哪里,那就不需要让它有返回值。

​ 一般我们并不会自己制造一个包饺子的机器,因为很多机器功能强大,结构复杂,制造它远远超出了我们的能力范围,所以大概率上会去买一个。相似的是,很多函数也都不是我们自己写的,C语言的开发人员已经为我们实现了大部分常见的基本功能,这样的函数体对于我们来说是一个“黑箱”,我们不需要知道它内部是如何实现的,而只需要会用就可以了。这并不意味着你不需要对它有任何了解,最起码你需要知道哪个供料口放肉,哪个放水,哪个放面粉等等。我们写的第一个程序中,printf()就是这样的一个函数。

​ C语言自带的函数称为库函数(Library Function)。库(Library)是编程中的一个基本概念,可以简单地认为它是一些列函数的集合,在磁盘上往往是一个文件夹。C语言自带的库称为标准库(Standard Library),其他公司或个人开发的库称为第三方库(Third-Party Library)。

​ 函数就是一段可以独立完成某个功能,并且可以重复使用的代码片段,函数的使用可以大大提升开发效率。每一个函数的名称都是独一无二的,函数的格式如下:

返回值类型 函数名(形参1, 形参2,...)
{
    //函数体;
}

函数的使用叫做函数调用,调用函数的格式为函数名称(实参1, 实参2,...);

上一篇 下一篇

猜你喜欢

热点阅读