美文网首页
C语言指向函数的指针

C语言指向函数的指针

作者: AuglyXu | 来源:发表于2018-09-08 13:46 被阅读0次

指向函数的指针

  • 计算机也会给函数分配存储空间, 既然函数会分配内存空间,
  • 函数也有自己的地址, 所以指针变量也可以保存函数的地址
  • 指向函数的指针的定义
void (*p)();
p = &test;

void test(){
    printf("test\n");
}
  • 如果一个指针指向了函数, 那么访问方式也有多种方式
    • 函数名称();
    • (*指针变量名称)();
    • 指针变量名称();
test();
(*p)();
p();

指向函数的指针的案例

  • 需求: 要求一个函数既可以计算两个变量的和, 也可以计算两个变量的差
  • 指向函数的指针的一个应用场景
#include <stdio.h>
int sum(int num1, int num2);
int minus(int num1, int num2);
int test(int num1, int num2, int (*funP)(int, int));
int main()
{
    // 需求: 要求一个函数既可以计算两个变量的和, 也可以计算两个变量的差
    // 指向函数的指针的一个应用场景
    int res1 = sum(10, 20);
    printf("res1 = %i\n", res1);

    int res2 = minus(10, 20);
    printf("res2 = %i\n", res2);

    /*
    int (*funP)(int, int);
    funP = &sum;
    int res3 = funP(10, 20);
    printf("res3 = %i\n", res3);

    funP = &minus;
    int res4 = funP(10, 20);
    printf("res4 = %i\n", res4);
    */

    int res3 = test(10, 20, sum);
    printf("res3 = %i\n", res3);

    int res4 = test(10, 20, minus);
    printf("res4 = %i\n", res4);
    return 0;
}
int test(int num1, int num2, int (*funP)(int, int)){
    return funP(num1, num2);
}

int sum(int num1, int num2){
    return num1 + num2;
}
int minus(int num1, int num2){
    return num1 - num2;
}
  • 图示如下


  • 注意点:
  1. 指向函数的指针,作为函数的形参时, 指针变量的名称, 就是形参的名称
  2. 如果指向函数的指针作为函数的参数, 那么这个可以称之为回调函数
  3. 这里相当于, 给demo函数传入了一个sum函数或者minus函数
  4. 然后又在demo函数中调用了sum函数或者minus函数

相关文章

  • 返回指针的函数与指向函数的指针

    1.返回指针的函数 2.指向函数的指针 总结:这里的指向函数的指针,与c语言的函数,oc中的block有以下的共同...

  • 函数指针

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

  • LCTHW - 18

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

  • 计算机基础的考察

    语言语法(以C/C++为例)。 指针(数组),函数指针,操作符运算顺序,const(常指针与指向常量指针),sta...

  • C语言指向函数的指针

    指向函数的指针 计算机也会给函数分配存储空间, 既然函数会分配内存空间, 函数也有自己的地址, 所以指针变量也可以...

  • iOS开发 -- C语言基础11(返回指针的函数与指向函数的指针

    iOS开发 -- C语言基础11(返回指针的函数与指向函数的指针) 前言 前面我们花了接近3个章节学习指针,应该都...

  • C语言特性(函数与指针)

    函数与指针 用函数指针变量调用函数 当定义函数之后,C语言允许定义一个指针变量来指向该函数,接下来就可通过该指针变...

  • C++程序设计(北京大学) 23/40

    郭炜 C++语言是特别讲究效率的语言,对效率是锱铢必较的。 01 | 函数指针 函数指针,用来指向变量的地址。有起...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • C语言基础及指针⑤动态内存分配

    接续上篇C语言基础及指针④函数指针 在上一篇我们了解C语言中的函数及函数指针 , 使用函数指针 , 模拟了网络请求...

网友评论

      本文标题:C语言指向函数的指针

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