函数指针
-
定义
- 函数指针是指向函数的指针变量。它存储的是函数的入口地址,就像普通指针变量存储变量的地址一样。函数的代码在内存中占据一片连续的存储空间,这片空间的起始地址(函数入口地址)就可以被函数指针所指向。
- 函数指针的定义形式一般为:
返回值类型 (*指针变量名)(参数列表);
。例如,int (*p)(int, int);
定义了一个名为p
的函数指针,它可以指向返回值为int
类型,并且有两个int
类型参数的函数。
-
使用场景
-
回调函数(Callback Function)
- 在很多库函数或者系统编程中被广泛使用。例如,
qsort
函数(用于排序数组),它的一个参数就是函数指针。用户可以定义一个比较函数,qsort
函数会在排序过程中通过这个函数指针调用用户定义的比较函数来确定元素的顺序。假设我们有一个整数数组arr
,想要按照升序排序,可以这样使用qsort
: -
#include <stdio.h> #include <stdlib.h> int compare(const void * a, const void * b) { return ( *(int*)a - *(int*)b ); } int main() { int arr[]
-