用函数指针求a和b中的大者

        指针变量也可以指向一个函数。一个函数在编译时被分配给一个入口地址。这个函数入口地址就称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。

先按一般方法编写程序:

        可以用一个指针变量指向max函数,然后通过该指针变量调用此函数。

        指向函数的指针变量的一般定义形式为
        函数类型(*变量名)(函数形参表);
        请将上面定义的指向函数的指针变量和上面程序中的函数max的原型作比较:

        int max(int,int);        //max 函数原型
可以看出,只是用(*p)取代了max,其他都一样。将上面程序的主函数修改如下:

        注意在定义指向函数的指针变量p时,(*p)两侧的括号不可省略,表示p先与*结合,它是指针变量,然后再与后面的()结合,表示此指针变量指向函数,这个函数值(即函数返回的值)是整型的。如果写成"int *p(int,int);",则由于()优先级高于*,它就成了声明一个函数了(这个函数的返回值是指向整型变量的指针)。

        请注意第7行的赋值语句"p=max;"。此语句千万不要漏写,它的作用是将函数max的入口地址赋给指针变量p。这时,p才指向函数max。注意:只须将函数名max赋给p,不能写成"p=max(a,b);"形式。函数名代表函数入口地址,而max(a,b)则是函数调用了。

        在main函数中的第9行:

        m=p(a,b);
赋值号的右侧是函数的调用,此赋值语句和"m=max(a,b);"等价,调用*p就是调用函数max。这就是用指针形式实现函数的调用。以上用两种方法实现函数的调用,运行结果是完全一样的。

相关推荐

  1. C语言指针函数函数指针

    2024-06-10 17:36:01       19 阅读
  2. vue3 let a= b赋值会改变b

    2024-06-10 17:36:01       29 阅读
  3. 一个数组子序列

    2024-06-10 17:36:01       50 阅读
  4. 函数指针指针函数区别

    2024-06-10 17:36:01       35 阅读
  5. python3a//b

    2024-06-10 17:36:01       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-10 17:36:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-10 17:36:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-10 17:36:01       87 阅读
  4. Python语言-面向对象

    2024-06-10 17:36:01       96 阅读

热门阅读

  1. 华为坤灵路由器配置telnet

    2024-06-10 17:36:01       34 阅读
  2. Position定位

    2024-06-10 17:36:01       32 阅读
  3. Docker日志相关命令

    2024-06-10 17:36:01       37 阅读
  4. TiDB Distributed NewSQL Database

    2024-06-10 17:36:01       36 阅读
  5. qt c++ 大小端字节序数据获取与转换

    2024-06-10 17:36:01       27 阅读
  6. GMT legend设置

    2024-06-10 17:36:01       38 阅读
  7. docker-compose部署mysql+nginx+redis

    2024-06-10 17:36:01       37 阅读
  8. vue面试题三

    2024-06-10 17:36:01       35 阅读
  9. C语言考试内容

    2024-06-10 17:36:01       28 阅读
  10. 881救生艇

    2024-06-10 17:36:01       32 阅读
  11. 音视频主要概念

    2024-06-10 17:36:01       33 阅读
  12. Dubbo的Cluster策略与Directory实现

    2024-06-10 17:36:01       29 阅读
  13. 单节点离线部署TiDB 6.1用于测试

    2024-06-10 17:36:01       27 阅读
  14. AtCoder Beginner Contest 355

    2024-06-10 17:36:01       37 阅读
  15. Docker镜像加速

    2024-06-10 17:36:01       29 阅读