• 复习函数指针


    2.函数指针

    顾名思义,函数指针说的就是一个指针,但这个指针指向的函数,不是普通的基本数据类型或者类对象。

    函数指针的定义如下:

    1. int (*f)(int a, int b); // 声明函数指针  
    int (*f)(int a, int b); // 声明函数指针

    通过与1中指针函数的定义对比可以看到,函数指针与指针函数的最大区别是函数指针的函数名是一个指针,即函数名前面有一个指针类型的标志型号“*”。

    当然,函数指针的返回值也可以是指针。

    上面的函数指针定义为一个指向一个返回值为整型,有两个参数并且两个参数的类型都是整型的函数。

    下面是利用函数指针分别求两个整数的最大值和最小值的用法。

    1. /* 
    2.  * 求最大值 
    3.  * 返回值是int类型,返回两个整数中较大的一个 
    4.  */  
    5. int max(int a, int b) {  
    6.     return a > b ? a : b;  
    7. }  
    8.   
    9. /* 
    10.  * 求最小值 
    11.  * 返回值是int类型,返回两个整数中较小的一个 
    12.  */  
    13. int min(int a, int b) {  
    14.     return a < b ? a : b;  
    15. }  
    16.   
    17. int (*f)(int, int); // 声明函数指针,指向返回值类型为int,有两个参数类型都是int的函数  
    18.   
    19. int _tmain(int argc, _TCHAR* argv[])  
    20. {  
    21.     printf("------------------------------ Start ");  
    22.   
    23.     f = max; // 函数指针f指向求最大值的函数max  
    24.     int c = (*f)(1, 2);  
    25.   
    26.     printf("The max value is %d  ", c);  
    27.   
    28.     f = min; // 函数指针f指向求最小值的函数min  
    29.     c = (*f)(1, 2);  
    30.   
    31.     printf("The min value is %d  ", c);  
    32.   
    33.     printf("------------------------------ End ");  
    34.     getchar();  
    35.     return 0;  
    36. }  
  • 相关阅读:
    【Vue】Re19 Promise
    【Vue】Re17 Router 第四部分(参数传递,守卫函数)
    【Vue】Re16 Router 第三部分(懒加载、子路由)
    【Vue】Re15 Router 第二部分(缺省路由、动态路由)
    【Vue】Re14 Router 第一部分(入门案例)
    【Vue】Re13 CLI(Command Line Interface)
    【Vue】Re12 Webpack 第三部分(插件、热部署、配置分离)
    【Vue】Re11 Vue 与 Webpack
    【Vue】Re10 Webpack 第二部分(Loader)
    11-26日测试
  • 原文地址:https://www.cnblogs.com/loanhicks/p/6484052.html
Copyright © 2020-2023  润新知