在C/C++中定义函数指针语法如下
[return type] [*function name]([arguments list])=NULL
如果我们需要将函数指针声明为一种类型,则:
typedef [return type] [*function name]([arguments list])=NULL
function name 即为函数类型
调用这个函数为 解引用(参数)
(*function name)(arguments list);
作为强制转换符
函数类型名还可以作为强制转换符 ,
将指定的函数转换为相对应的函数类型,需要注意一下几点:
1.如果参数个数不同,将进行裁剪,
2.如果参数类型不同,将抛出强制转换出错.
function name(function name);
函数指针数组
typedef [return type] [*function name]([arguments list])={NULL}
[*function name]指向数组函数指针
(实际上C/C++ 语言中,函数名即为函数的指针,函数名记录着函数的内存地址) 所以我们可以这样
*[function name][index]=function name;
或者
*[function name][index]=&function name;