学到现在,遇到的代码全部可以抽象成:“数据+函数”。它,真的很重要。
不懂就问
- 函数是个啥,怎么用?
- 函数有啥用?
函数是个啥,怎么用?
- 函数有参数,有函数体,有返回值,有…
- 如果你够强,它什么都能做
笼统的定义咱们不看,直接抽象
函数体,就像工厂,把收到的参数处理后,以返回值的形式交付 若没有返回值,就看作是焚烧厂吧(它总有作用的对吧ovo)来了解一下有哪几种函数
-
自定义函数
任你玩弄~ —— 函数名、返回值类型、函数参数都可以自己设置
-
库函数
C语言“家库”里放着的函数
为什么会有库函数的存在?
确实,printf,scanf这类函数可以自己写,但每个人的printf都不一样,导致标准不统一;再者说,使用频率高,直接封装成库函数,多方便。
有趣的函数参数-
实际参数
“货车送到工厂的货物” —— 可以是常量,变量等(有确定的值)
-
形式参数
“实际参数的临时拷贝”
哎哟哟,这可有点混乱了,那函数工厂到底处理的是哪批货物啊?
这就取决于我们交给工厂的任务了(如何去调用它)
函数调用-
传值调用(小弟):给它货物,让它模仿一批货物,再处理
让工厂照着我们给它的货物,小弟自己捣鼓
此时,工厂不能动我们的货物,只能自己模仿一份(临时拷贝一份)
接着就是处理处理处理…再交付
-
传址调用(兄弟):给它地址(处理我们货物的权限),让它直接处理货物
直接放心地把货物交给工厂处理,兄弟,爱咋咋
此时,工厂可以直接处理货物
看看这区别,能获得什么启发?
函数不总是能改变实际参数
- 传值调用时,形参和实参互不影响
- 传址调用时,形参可以通过地址找到实参,并“化身”实参,为所欲为
- 链式访问
2. 嵌套调用:函数1里调用函数2
-
声明(在.h文件):如 int Add(int a,int b);
可以想象成自己建了一个人“库”
-
定义:
就是实现函数
-
使用:
用Add时,包含一下.h文件就行
通过自己调用自己,**大事化小**,减少代码量
使用递归注意事项:
- 必须存在限制条件
- 每次递归后,接近限制条件
最后记住,函数一定是 独立 、 功能鲜明的
写了一个加法函数,调用以后它居然打印了结果?不合适,不理想,不聪明。
今天的分享就到这里啦,不足之处望请斧正
培根的blog,我们共同成长!



