函数部分复盘

C语言中函数主要有两种,一种是库函数,一种是自定义函数。

库函数通过头文件声明之后,就可以自由调用,常见的有 <stdio.h>、printf <stdlib>rand(windows函数调用)<string.h> strcmp<math.h> 等等。库函数查询网站:www.cplusplus.com

自定义函数是比较重要的内容,可以把函数想象成一个独立的黑匣子,具有独立的特定功能,这个功能的要求是足够简单、明确、独立。我自己的理解是可以用一个短语来形容这个功能是最好。这个黑匣子的用法是:有独特的名字,在输入一些内容之后,输出一些内容。

因此函数的定义有以下几个必要元素:函数名、输入类型、输出类型。其中输出类型可以是void,也就是说只做操作,但是没有返回值,比如打印一个棋盘等等。一个简单的加法函数:int Add(int x , int y)。

函数的调用。首先自定义函数一般有以下的规定。函数声明统一放在一个自己创建的头文件中,例如 "game.h" ,函数主体一般放在 game.c 文件中,在主函数调用时,需要 #include "game.h",调用头文件中的函数声明,才可以在主函数中调用自定义的函数。函数调用格式严格按照函数定义去传递数据即可。

实参与形参。实参就是真实参数,是你在主函数中调用函数时输入进去的参数,例如int sum=Add(a,b),a和b都是你在主函数定义的参数,这些是实参。而当你把实参传递到函数中时,函数会创建相对应的形参来进行数据上的接收,形参也就是形式上的参数,在函数执行过后就会被立即销毁。因此实参与形参在数值上虽然一样,但是却是两个不一样的参数,在内存上形参储存在栈区内,栈区是一个临时的操作空间,《函数栈帧的创建和销毁》之后可以查查这个视频。所以总的来说,对形参进行任何的修改都对实参没有任何影响,想要利用函数对实参进行影响,必须利用指针变量。指针变量相当于直接找到了实参的家门,利用*p即可对实参进行内容上的访问和修改。

函数递归。函数递归的用法比较抽象,需要实际中多运用才会有比较深的理解,这里讲讲基础部分。第一,函数的递归必须有极限。第二,函数的每次递归都在向着极限前进。说起来其实高数里的递归思路:极限存在,趋向极限。实现思路上就是把大的任务分解为相似的小任务,然后在函数里调用函数自己,经典案例有求字符串长度,这个之后有更深的理解之后会单独写一篇帖子来总结。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值