跳至主要內容

3.21 指向函数指针


指向函数指针

  • 为什么指针可以指向一个函数?
  • 函数作为一段程序,在内存中也要占据部分存储空间,它也有一个起始地址
  • 函数有自己的地址,那就好办了,我们的指针变量就是用来存储地址的。
  • 因此可以利用一个指针指向一个函数。其中,函数名就代表着函数的地址。
  • 指针函数的定义
  • 格式: 返回值类型 (*指针变量名)(形参1, 形参2, ...);
    int sum(int a,int b)
    {
        return a + b;
    }

    int (*p)(int,int);
    p = sum;
  • 指针函数定义技巧
  • 1、把要指向函数头拷贝过来
  • 2、把函数名称使用小括号括起来
  • 3、在函数名称前面加上一个*
  • 4、修改函数名称
  • 应用场景
  • 调用函数
  • 将函数作为参数在函数间传递
  • 注意点:
  • 由于这类指针变量存储的是一个函数的入口地址,所以对它们作加减运算(比如p++)是无意义的
  • 函数调用中"(指针变量名)"的两边的括号不可少,其中的不应该理解为求值运算,在此处它 只是一种表示符号
上次编辑于: