美文网首页程序员面试
在C语言中怎样声明一个指向函数的指针?

在C语言中怎样声明一个指向函数的指针?

作者: 陈继科 | 来源:发表于2017-11-02 15:01 被阅读41次

0.先考虑怎样声明一个内置类型的指针

int i;
int *i_p;

直接加个*就好了

1.对于函数声明,我们有

double pow(double,int);

声明了一个接受double、int两个参数的返回为double的函数pow

2.那么

double* pow_p(double,int);

是不是就是就是一个指向pow函数的指针呢?

3.可惜并不是

这是因为运算符的优先顺序:()比*优先级高,所以上面的等价于

double* (pow_p(double,int));

这声明了一个返回double*的函数
真正要声明一个指向函数的指针,要加括号改变其结合顺序

double (*pow_p)(double,int);

注意参数签名要一致,否则会报错,例如指针只有一个参数double,则:
不能将 double()(double,int)类型的值分配到double()(double)类型的实体
此时就可以让其指向一个函数并调用了

pow_p=&pow;
(*pow_p)(3.5,2);

相关文章

  • 在C语言中怎样声明一个指向函数的指针?

    0.先考虑怎样声明一个内置类型的指针 直接加个*就好了 1.对于函数声明,我们有 声明了一个接受double、in...

  • 函数指针

    c语言中的指针可以指向整数、字符或者结构体类型等,同样也可以指向一个函数,这就是函数的指针。函数指针的值等于该函数...

  • LCTHW - 18

    18. 函数指针 C语言中的函数实际上都是指向一段代码的指针(这段代码就是函数的实现).就像创建指向结构体, 变量...

  • C++:函数指针 & 返回函数指针的函数

    函数指针 & 返回函数指针的函数 一、函数指针的声明和使用 声明一个函数指针,给它赋值并调用它指向的函数 函数指针...

  • c++ 指针

    函数指针 是指向函数的指针变量,即重点是一个指针。一种特殊的指针,它指向函数的入口;要声明指向特定类型的函数指针,...

  • C语言基础知识点

    函数指针与回调函数 1、函数指针:函数指针是指向函数的指针变量,以下实例声明了函数指针变量 p,指向函数 max:...

  • C++ 中必知必会的 “工具”函数与类

    001 memset 在 C++ 语言中,memset() 函数是一个非常重要的初始化函数,他可以将指针所指向的一...

  • C++函数指针、函数对象与C++11 function对象对比分

    1.函数指针 函数指针:是指向函数的指针变量,在C编译时,每一个函数都有一个入口地址,那么这个指向这个函数的函数指...

  • 什么是野指针?什么是僵尸对象?

    野指针与僵尸对象 1. 野指针 1>C语言中的野指针:一个指针变量指向一块随机的空间,这个指针就是野指针当我们声明...

  • Go语言之函数指针和指针函数

    函数指针 一个指针,指向了一个函数的指针因为go语言中,function,默认看做一个指针,没有*slice,ma...

网友评论

    本文标题:在C语言中怎样声明一个指向函数的指针?

    本文链接:https://www.haomeiwen.com/subject/clbopxtx.html