• Linux C语言进阶-D15递归函数和函数指针


    递归函数

    指一个函数的函数体中直接或间接调用了该函数本身

    执行过程分为两个过程:

            递推过程:从原问题出发,按递归公式递推从未知到已知,最终达到递推终止条件

            回归阶段:按递归终止条件求出结果,逆向逐步代入递归公式,回归到原问题求解。

     编写一个递归函数,计算n!

    编写一个递归函数,计算斐波那契数列

             一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月就能生出一对兔子来,如果所有兔子都不死,那么一年以后能繁殖多少对兔子?--斐波那契数列

     函数指针

            用来存放函数的地址,这个地址是一个函数的入口地址

            函数名代表了函数的入口地址

            函数指针变量说明的一般形式

                    <数据类型> (*<函数指针名>) (<参数说明列表>);

                    数据类型:是函数指针所指向的函数的返回值类型

                    参数说明列表:应该与函数指针所指向的函数的形参说明保持一致

                    (*<函数指针名称>):*说明为指针()不可缺省,表明为函数的指针

    下图11行就是一种标准写法,16行是调用方法,注意

     函数指针的好处:

            调用函数方便

            用于线程创建pthread_create

            排序qsort的第三个参数输入也是一个函数指针

        函数指针数组

            一个保存若干个函数名的数组

            一般形式如下:

                    <数据类型> (*<函数指针数组名称>) [<大小>](<参数说明列表>);

                    其中,<大小>是指函数指针数组元素个数

                    其他同普通的函数指针

     qsort函数的使用

    升序排序

    第一个参数:数组地址

    第二个参数:数组大小

    第三个参数:数据大小

    第四个参数:函数指针,指向一个函数,返回值是int类型整数(第一个小于第二个数据就是小于零),两个参数为待比较的第一个数据和二个数据

    应用如下:

  • 相关阅读:
    vivado HW_SYSMON
    很多行业在很多人看来门槛很低,人人都可以做
    【QNX Hypervisor 2.2用户手册】目录
    25.4 MySQL 函数
    亲测!好用的电子期刊制作工具
    放大器的输入、输出电压范围的理解
    剑指 Offer 07. 重建二叉树
    ChatGPT办公与科研应用、论文撰写、数据分析、机器学习、深度学习及AI绘图
    11设计模式-结构型模式-外观模式
    数字逻辑·时序线路分析【常见的时序线路】
  • 原文地址:https://blog.csdn.net/zhaojiazb/article/details/134307797