目录
一.递归函数
1.定义:递归函数中是指一个函数直接调用或者间接调用了该函数自身的函数
2.递归函数调用的执行过程分为两个阶段。
递推阶段:从原问题出发,按递推公式递推从未知到已知,最终达到递归终止条件。
回归阶段:按递归终止条件求出结果,逆向逐步代入递归公式,回到原问题求解。
(1)示例代码如下
分析:
该程序的递归规律为n!=n*(n-1)
4.递归调用的形式:
递归调用有直接递归调用和间接递归调用两种形式 。
直接递归调用即在函数中出现调用函数本身。
(1)求斐波那契数列前20项(采取直接递归调用)
代码示例如下:
二.函数指针
1.定义:函数指针是专门用来存放函数地址的指针。函数地址是一个函数的入口地址,函数名代表了函数的入口地址。
当一个函数指针指向了一个函数,就可以通过这个指针来调用该函数,可以将函数作为参数传递给函数指针。
一般形式:
函数指针变量说明形式如下:
<数据类型> (*<函数指针名称>)(<参数说明列表>);
其中<数据类型>是函数指针所指向的函数的返回值类型;
<参数说明列表>应该与函数指针所指向的函数的形参表示一致
(*<函数指针名称>)中*说明为指针,()不可以缺,表明指向函数的指针
2.
示例程序如下:
3.函数指针数组
是一个保存若干个函数名的数组
一般形式如下
<数据类型> (*<函数指针数组名称> [<大小>] )(<参数说明列表> );
其中,<大小>是指函数指针数组元数的个数 其它同普通的函数指针
三.qsort函数
1.调用C库中的qsort函数来实现整形数组的排序
分析:
在compare中编写排序的规则,后面库函数会根据你写的规则来排序