导图社区 函数
函数总结,整理了库函数、自定义函数、函数参数、经典递归习题、函数递归、函数的声明和定义、函数的嵌套调用和链式访问、函数调用的内容,快来看。
初识C语言,本图整理的内容有:操作符、常见关键字(define不是关键字,是一种指令)、#define定义常量和宏(宏是在标识符常量、符号的基础上加了一个参数)、指针、结构体(用来描述复杂类型),欢迎学习。
关于考研数学一轮按考纲做的思维导图,本图简单分享了线性方程组、矩阵的特征值和特征向量、二次型知识,感兴趣的小伙伴别错过。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
函数
1.定义
子程序,是一个大型程序中的某部分代码,由一个或多个语句块组成,用于完成某项特定任务,相较于其他代码具有相对的独立性
2.库函数
IO函数、字符串操作函数、字符操作函数、内存操作函数、时间/日期函数、数学函数、其他库函数 注:使用库函数必须包含#include对应的头文件
3.自定义函数
ret_type fun_name(para1,* ) { statement;//语句项,交代函数是如何实现的 } ret_type 返回类型 fun_name 函数名 para1 函数参数
4.函数参数
实参:真实传给函数的参数,可以是常量、变量、表达式、函数等。无论是哪种类型,在进行函数调用时都必须有确定的值,以便把这些值传给形参
形参:函数名后括号中的变量,只有在函数被调用的过程中才实例化(分配内存单元)。当函数被调用完之后就自动销毁了。因此形式参数只有在函数中有效,形参实例化之后其实相当于实参的一份临时拷贝
经典递归习题
1.汉诺塔问题
问题描述:把第一个杆上的盘全部移到最后一个杆上,并仍保持原有顺序叠好。 操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于任一杆上 操作步骤:1.首先需要把n-1个盘子移动到中转柱上 2.把最后一个也就是最大的盘移动到目标柱上 3.最后把剩下n-1个盘移动到目标住上 f(n)=2f(n-1)+1
2.青蛙跳台阶问题
操作规则:青蛙每次可以选择跳1级还是2级台阶,问题是有n阶台阶一共有多少种跳法 分情况讨论:1.跳3阶台阶时,可以先跳1级,接下来就有2种跳法;如果先跳2级,接下来只有1种跳法 2.跳4阶台阶时,可以先跳1阶,接下来还有3阶,就是上述第一种情况的讨论;先跳2阶的话,可以使用之前2级台阶的结果 总结:事实上,跳n阶台阶的跳法就是跳n-1阶+跳n-2阶的跳法,这就可以使用递归f(n)=f(n-1)+f(n-2)
8.函数递归
程序调用自身的编程技巧称位递归
递归的两个必要条件:1.存在限制条件,当满足这个限制条件时,递归便不再继续2.每次递归调用之后越来越接近这个限制条件
7.函数的声明和定义
先声明再使用,声明一般要放在头文件中,test.h。函数的定义是指函数的具体实现,交代函数的功能实现,放在test.c。
6.函数的嵌套调用和链式访问
链式访问:把一个函数的返回值作为另一个函数的参数
5.函数调用
传值调用
对形参的修改不会影响实参
传址调用
可以让函数和函数外边的变量建立真正的联系,也就是函数内部可以直接操作函数外部的变量