函数指针 说到底还是 指针。
只是 他的 声明 要比 一般至真麻烦些:
void *( *func) (int,float);
上面 这个, 定义 func 是一个 函数指针, 它指向的函数 要 接受 参数 (int, float), 并返回 一个 void * 的 返回值。
一个简单例子:
#include <stdio.h>
void hello(int x) {
printf("hello: %d\n", x);
}
int main(void) {
void (*func)(int);
func = &hello; //func = hello 也可以
// 使用方式灵活。 可以不使用 *, 这时候看起来像数组的使用。
func(1);
//加上*, 也可以。
(* func)(2);
return 0;
}
虚函数 也是 靠 函数指针 实现的。