返回第三十四章 老君炼丹记(下)(1 / 1)任煦之秋首页

关灯 护眼     字体:

上一章 目录 下一章

「函数?」

我和小弦子两脸懵逼,对这个从来没有听说过的词汇充满了疑问。

「也别想太复杂,函数其实就是实现了某个功能的代码段。当我们要使用这个功能的时候,只需要调用函数就行了,而不是再写一段相似的代码。就好比说故事中的炼丹炉,太上老君在炼丹之前只需要把炼丹相关的程序设定好就行了,而不是每次都自己动手,去进行繁琐复杂的事情。

再举个简单的例子,奶奶使用电饭煲煮饭你看到过吧?现在煮饭只需要三个步骤:淘米掺水、上电、按煮饭按钮。在老爹小时候,煮饭可不是一件容易的事情,你得自己先烧一锅水,等水开了之后淘米,倒进锅里,然后一边烧火保持锅内的水沸腾,一边还要频繁搅拌,不让米粒沉降在锅底。

等到米粒五六分熟的时候,还要用筲箕将它们沥干,最后再用甑子把半生夹熟的米粒蒸熟。

而现在煮饭这个功能已经电饭煲实现了,所以我们现在煮饭只需要调用电饭煲的煮饭功能就行了,快捷又方便。

函数的本质作用就和炼丹炉、电饭煲一样,是实现了某种功能代码段,至于要实现什么功能,这就要靠我们程序员来定义了。」

有两个例子做分析论证,我慢慢理解了为什么要使用函数,以及函数是什么。既然我都明白了,小弦子肯定也早就悟得其真谛。

「既然已经知道why和what了,那么接下来就应该学习how,如何使用?其实不管是学习编程也好,还是学习其他的东西,你只要按照这个套路来,基本上不会出岔子。

在学习如何使用的过程中,我们依然用炼丹炉和电饭煲这两个例子来说明。

要使用函数,那咱们得先定义函数。你要炼丹,没有炼丹炉怎么炼?煮饭没有电饭煲怎么煮。所以我们如果要使用某个函数,必须得先定义。

当然了,不是所有函数都需要自己的定义,有可能别人已经给你定义好了,就像是print()函数,这个是C语言函数库,也就是开发C语言的那些科学家已经定义好了的,咱们直接拿来使用就行了。

你们想啊,咱们没有电饭煲的时候总不能自己造一个吧,可以去商店里面买一个,因为别人已经造好了。

好了,闲话休提,言归正传。

要定义个函数,实现一个功能,你总得给它起个名字吧?虽然这个名字只要符合之前讲过的其名法则即可,但是我们还是尽量让它贴近功能。你看炼丹炉、电饭煲这两个名字,人一听就知道是用来干什么的。

起名可是头等大事,不能含糊,名字起好了问题就解决一半了!当然这是不可能的,哪有那么便宜的事情。

接下来就是要完成这个功能,需要一些什么条件因素了。如果要炼丹,你总得准备草药啊什么的吧?要煮饭总得要米、水这些东西吧。

当然了,也不绝对。你们看,按照理论上来说炼丹炉和电饭煲都还有一些不需要任何东西的功能,比如说给孙悟空炼火眼金睛的时候,不就什么都没有放么?

然后就是这个功能要得到什么东西,你看,炼丹炼丹,最后得到的是仙丹,煮饭煮饭,最后得到的时候米饭。

所以我们的函数也可以得到一些东西,当然了也不是绝对的。如果炼丹炉就那么烧着玩儿,也不会得到仙丹是吧?

最后一步,就是具体功能的实现过程了,这个需要我们来做。

以上在C语言中都有它们专业的叫法,起的名字叫做函数名,需要的元素叫做参数,得到的结果叫做返回值。

上面的内容总结起来,一个函数的声明格式如下:

返回值函数名称(参数列表)

{

实现功能的代码;

return 返回值;

}

其中有几个地方需要注意返回值可以是某种具体数据类型,如byte、short、int、long、loat、double、char这样的基本数据类型,也可以是我们以后要学的结构体、枚举等类型。如果一个函数没有返回值,就需要声明为void,这个单词是空』的意思。

同样的,参数列表也可以是这些数据类型,如果有多个参数,则需要用英文状态下的逗号隔开。若是没有输入参数,则也声明为void。

最后说一下那个return,这个关键字会结束一个函数,如果在声明函数的时候返回值不为void的话,这个时候return后面就必须跟声明的返回值类型。」

听着老爹讲了一通,我完全不明所以。就连一向聪明绝顶的小弦子也是一头雾水。

「我知道,这些概念听来有些难以理解,那么我们用实际的代码来说明一个函数的定义。」

老爹微微一笑,似乎我和小弦子的反应完全在他的意料范围之内。

「嗯,首先我们来一个对两个int型数值做加法的函数,假设函数名字叫做add,也就是加法的意思,表名我们这个函数是要做加法。

然后呢,我们这个加法函数需要两个int型参数,分别是a和b,代表两个加数。

最后咱们还要计算得到的结果返回出来。

那么,要实现这个函数,其代码如下:

int add(int a,int b)

{

int sum = a + b;

return sum;

}

这样我们就定义好了一个做加法的函数了。既然函数一定定义好了,接下来就是如何使用的问题了。

比如说我们要计算10+20的结果,那么就可以这样:

int sum = add(10,20);

这样add函数的返回值就会赋值给变量sum,这个时候sum里面的值就是30。」

「任叔叔,玥玥给我的教学文档上说过,C语言里面给变量起名字的时候不能出现一样的,现在add函数里面和外面都有一个名字叫sum的变量,这不是和你之前的说法互相矛盾么?」

小弦子不解地问道。

竟他这么一提问,我也意识到了这个问题。

「不错不错,看来你们果然对之前的知识掌握得不错。我之所以会这样写,就是为了引出这个问题,如果你们没有发现我也会主动抛出这个问题。

不管怎么样,你们先在尝试写我刚才定义的函数,然后运行一下看看会不会报错再说。」

老爹笑眯眯地说道。

『加入书签,方便阅读』

上一章 目录 下一章