回 帖 发 新 帖 刷新版面

主题:关于函数的参与返回值

做为一个学习者,我想我遇到了目前为止最大的一个困难,就是不能理解函数的返回值与参数。以后可能是指针。。。于是,我就在家门前的球场上溜达,无意中,脚踢到

一个小石子,是右脚踢到的,我很自然的用左脚接着又轻踢了一下,当时脑子里正想的函数的返回值是怎么回事,看着那石子,我貌似有点明白

但又不太明白,我就用了踢足球做比喻。右脚是主函数,左脚是被调用的函数,球是值,右脚踢给左脚,叫传递。左脚接到值了,然后是返回吗?也许

用传回更恰当,传回给右脚吗?不能看作是左脚发球给右脚吗?貌似在这里就卡住了,主函数是不允许被调用的吗?书上这么说的。自己调用

自己叫递归,就好比左脚向前踢球,球停在某个地方,人上前再用左脚再传,这是递归的原理吗?那我用右脚可以实现递归嘛?就是用主函数

然后是参数,形参与实参,我如何分辨它们,书上是说在被调函数里的是形参,对应的主调函数里的是实参,话是这么说,可我是初学者,就算明白了这一点,让我知道哪个是形参或实参,确实搞不明白,更直白的说,我看到int我能知道这是基本整型,就是这么个意思。

到底,函数的返回值与参数到底有什么作用?用左脚可以射门,右脚也行,甚至头也行。。。昨天我一边想就一边笑,没办法,想不通,只好求助了,

以问号结束的句子就是我的问题,有点多。谢谢好心人。有人这么告诉过我:不懂的问题可以先放着,过一段时间再回过头来看,还看不懂就可

以请教有经验的人了,因为学习过,有经验,不经意的一句话能超过自己苦读一个星期的书,但也不要养成依赖的习惯。我始终都信奉这句话。

所以,我从心里感激帮助过我的人。

回复列表 (共5个回复)

沙发

假如由你来设计一门计算机语言,你会怎么设计?
如果你是正常人的话,那么你设计出来的,应该和C语言是一样的。

当分析一个新事物时,首先要思考一下“如果是我设计的话,我会怎么设计”,这样一来,自己思考完毕后,在还没看别人的设计前,你起码就理解了80%。因为你们都是智力正常的人类,所以对同一个事物的设计起码应该有八八九九的相似。
当你有了80%的理解后,余下的20%还不好理解吗?

板凳

呵,有点道理

3 楼

函数可以有返回值也可以不返回一个值,比如我命令你告诉我两个数相加等于多少,你不会回答出来,因为我没告诉你这两个数分别是多少?我必须告诉你这两个数例如一个是1,一个是2你才能算出来,1和2就相当于参数,你回答的3就相当于函数返回的值。如果我告诉你打自己一巴掌,我不用告诉你什么信息,你自己知道怎么做,你打完以后也不用回答我什么,这就相当于函数没有返回值。递归要表达清楚的话可能有些困难,如果你学过汇编的话理解起来就容易多了,主要就是同一过程对栈的不同地址操作。

4 楼

递归就像小时候大人给我们讲这样的故事:
从前山里有座庙,庙里有两个和尚,一老一小,小和尚要老和尚讲故事,老和尚对小和尚说:从前山里有座庙,庙里有两个和尚,一老一小,小和尚要老和尚讲故事,老和尚对小和尚说从前山里有座庙,庙里有两个和尚,一老一小,小和尚要老和尚讲故事,老和尚对小和尚说从前山里有座庙,庙里有两个和尚,一老一小,小和尚要老和尚讲故事,老和尚对小和尚说……
只要最后一个老和尚真的对小和尚真的说了一个故事,那么,最前面那个小和尚就知道这个故事了!
懂不?

5 楼

c语言里面的函数  跟数学里面学的函数y=F(x)  是一样的  
你就这样来理解 对于数学里面的函数y=F(x) 你给它一个x经过一个给定的运算就返回你一个y值  这时候函数是一个参数 有时候有多个参数  数学里面也就是y=F(x1,x2,...)
你给它几个值经过特定运算就返回一个值

我来回复

您尚未登录,请登录后再回复。点此登录或注册