C语言什么是指向函数的指针?

一、问题

        指针可以指向普通数值、数组,还可以指向指针,那么可以指向函数吗?答案是可以, 那么它是什么样的呢?

二、解答

        ⼀个函数在编译时被分配⼀个⼊⼜地址,这个地址就称为函数的指针。所以,可以使⽤指针变量指向⼀个函数,然后通过该指针变量调⽤这个函数。 指向函数的指针变量的⼀般形式为:

数据类型(*指针变量名)();

这⾥的数据类型是指函数返回值的类型。

例如:

int (*pmin)();

        (*p)()表示定义⼀个指向函数的指针变量,它⽤来存放函数的⼊口地址。在程序设计过程中,将⼀个函数地址赋给它,它就指向那个函数。函数指针变量赋值可按如下⽅式进⾏书写:

p=min;

        可见,在赋值时只给出函数名称即可,不必给出函数的参数。 在使⽤函数指针变量调⽤函数时,要写出函数的参数。例如:

m = (*p)(a,b);

        下⾯来看⼀个应⽤的实例:⽐较⼤⼩。代码如下。

#include <stdio.h>
int min(int a, int b)
{
    if (a < b)
        return a;
    else
        return b;
}
int main()
{
    int (*pmin)();
    int a, b, m;
    pmin = min;
    printf("请输入两个数:\n");
    scanf("%d%d", &a, &b);
    m = pmin(a, b);
    printf("min=%d", m);
    return 0;
}

        在 mian()函数中实现定义指向函数的指针变量,并使次函数指针变量指向 min()函数, 将得到的结果输出在窗体上。

三、总结

        对于函数指针要注意以下两点:

(1)不能对函数指针变量进⾏算术运算。

(2)在函数调⽤时,不要忘记指针变量名两边的括号。

相关推荐

  1. C语言什么指向函数指针

    2024-05-04 00:00:03       14 阅读
  2. C语言什么悬空指针

    2024-05-04 00:00:03       35 阅读
  3. C语言什么指针数组?

    2024-05-04 00:00:03       9 阅读
  4. C/C++函数指针C#委托什么

    2024-05-04 00:00:03       8 阅读
  5. C语言——函数指针

    2024-05-04 00:00:03       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-04 00:00:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-04 00:00:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-04 00:00:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-04 00:00:03       20 阅读

热门阅读

  1. Linux / Ubuntu 备份数据

    2024-05-04 00:00:03       15 阅读
  2. Mysql

    Mysql

    2024-05-04 00:00:03      12 阅读
  3. 【CAN】知识点:CAN故障与错误帧详解

    2024-05-04 00:00:03       11 阅读
  4. 数据库漫谈-发展简史

    2024-05-04 00:00:03       11 阅读
  5. 【leetcode】二分搜索题目总结

    2024-05-04 00:00:03       14 阅读
  6. 【Leetcode】63- 不同路径II

    2024-05-04 00:00:03       11 阅读
  7. 5.3作业

    2024-05-04 00:00:03       10 阅读
  8. 日拱一卒,月进一步(13)

    2024-05-04 00:00:03       14 阅读
  9. 「C/C++ 01」变量,变量名和指针

    2024-05-04 00:00:03       16 阅读