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


    递归函数

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

    执行过程分为两个过程:

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

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

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

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

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

     函数指针

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

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

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

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

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

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

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

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

     函数指针的好处:

            调用函数方便

            用于线程创建pthread_create

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

        函数指针数组

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

            一般形式如下:

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

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

                    其他同普通的函数指针

     qsort函数的使用

    升序排序

    第一个参数:数组地址

    第二个参数:数组大小

    第三个参数:数据大小

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

    应用如下:

  • 相关阅读:
    使用python计算两个位置的距离是多远
    Git_04_撤销工作区的修改
    3. 常用服务器工具安装
    千亿赛道,MCU背后的国产化浪潮(附国内厂家名单)-MCU国产化发展线上研讨会
    阿里P8大牛带你深入理解SpringCloud微服务构建文档
    超美!ChatGPT DALL-E 3已可用,另外GPT-4可上传图片进行问答
    Nginx
    OceanBase社区版单节点安装搭建(Docker)
    nginx的ip_hash算法
    yolov5 训练
  • 原文地址:https://blog.csdn.net/zhaojiazb/article/details/134307797