3.21 指向函数指针
指向函数指针
- 为什么指针可以指向一个函数?
- 函数作为一段程序,在内存中也要占据部分存储空间,它也有一个起始地址
- 函数有自己的地址,那就好办了,我们的指针变量就是用来存储地址的。
- 因此可以利用一个指针指向一个函数。其中,函数名就代表着函数的地址。
- 指针函数的定义
- 格式:
返回值类型 (*指针变量名)(形参1, 形参2, ...);
int sum(int a,int b)
{
return a + b;
}
int (*p)(int,int);
p = sum;
- 指针函数定义技巧
- 1、把要指向函数头拷贝过来
- 2、把函数名称使用小括号括起来
- 3、在函数名称前面加上一个*
- 4、修改函数名称
- 应用场景
- 调用函数
- 将函数作为参数在函数间传递
- 注意点:
- 由于这类指针变量存储的是一个函数的入口地址,所以对它们作加减运算(比如p++)是无意义的
- 函数调用中"(指针变量名)"的两边的括号不可少,其中的不应该理解为求值运算,在此处它 只是一种表示符号