C 函数指针与回调函数
函数指针是指向函数的指针变量。
通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。
函数指针可以像一般函数一样,用于调用函数、传递参数。
函数指针变量的声明:
#include<stdio.h> #include<stdlib.h> void populate_array(int *array,size_t arraySize,int (*getNextValue)(int i)){ for(int i=0;i<arraySize;i++){ array[i]=getNextValue(i); } } int getNextRandValue(int i){ return i; } int main(){ int mArray[10]; populate_array(mArray,10,getNextRandValue); for(int i=0;i<10;i++){ printf("%d ",mArray[i]); } return 0; }
size_t 是一种数据类型,近似于无符号整型,但容量范围一般大于 int 和 unsigned。这里使用 size_t 是为了保证 arraysize
变量能够有足够大的容量来储存可能大的数组。