内容简介
前言
函数的创建和调用
一些函数的实例
总结
第一部分练习题预告
1. 前言
上一课是 C语言探索之旅 | 第一部分第十课:第一个C语言小游戏 。
这一课我们将会用函数这个重中之重来结束《C语言探索之旅》的第一部分(基础部分),而第二部分将要迎接我们的就是 C语言的高级技术了。
第二部分会比较难,不过不用担心,我们会循序渐进,一点点地学习。只要方向对,肯花时间,C语言一点也不可怕。
这一课里我们也会给大家讲 C语言程序所基于的原则。
我们将要学习如何将程序分块管理,有点像乐高积木。
其实所有 C语言的大型程序都是小程序块的集合,而这些小程序块我们称之为函数。函数的英语是 function,function 表示“功能;[数]函数”。
在面向对象的语言(如 Java,C++)里面,函数又被称为方法(method)。当然这里我们只讨论 C语言(面向过程的语言),不讨论面向对象的语言。
2. 函数的创建和调用
在之前的课程中我们已经学过:所有的 C语言程序都是由 main 函数开始运行的。那时候我们也展示了一个概要图,里面有一些术语:
最上面的部分我们称之为“预处理指令”,很容易辨识,因为以 # 号开头,而且通常总是放在程序的最前面。
下面的部分就是我们要学习的函数了,这里的示例是 main 函数。
前面说过,C语言的程度都是以 main 函数为入口函数的。一个 C程序要运行,必须要有 main 函数。只不过,目前为止我们写的所有程序,包括上一课的小游戏,也只是在 main 函数里面捣鼓而已,我们还没跳出过 main 函数过。
那你也许会问:“这样不好吗?”
答案是:并不是说这样不好,但这并不是 C语言的程序员通常所做的。几乎没有程序员会只在 main 函数的大括号内部写代码。
到目前为止我们所写的程序都还比较短小,但是想象一下如果程序变得很大,代码几千几万甚至上百万行,难道我们还把这些代码都塞在 main 函数里面吗?
所以我们现在来学习如何更好地规划我们的程序。我们要学习将程序分成很多小块,就像乐高积木的每一个小块一样,这些小块搭起来却可以组成很多好玩的形状。
这些程序小块我们称之为函数(function)。
一个函数会执行某些操作,并返回一个值。程序就是一个代码序列,负责完成特定的任务。
一个函数有输入和输出,如下图所示:
我们可以把函数想象成一台制作香肠的机器,在输入那一头你把猪装进去,输出那一头就出来香肠了。这酸爽,不言而喻~
当我们在程序中调用一个函数的时候,会依次发生三个步骤:
输入:给函数传入一些信息(通过给函数一些参数)。
运算:使用输入里传进去的信息,函数就可以完成特定任务了。
输出:做完运算后,函数会返回一个结果,被称为输出或者返回值。
举个例子,比如我们有个函数叫做 multipleTwo,作用是将输入乘以二,如下所示:
函数的目的是为了让源代码更加结构分明,也节省源代码数目,因为我们就不用每次都输入重复的代码片段而只需要调用函数就好了。
再设想一下:
之后我们可能会想要创建一个叫 showWindow(“显示窗口”)的函数,作用是在屏幕上显示一个窗口。
一旦函数写好之后(当然写的过程是最难的),