注意区别:
int *fun(char *);//这是一个返回整形指针的函数
int (*fun)(char *);//这是一个函数指针
函数指针使用:
例子:
int ptr; int fn(int); int(*fp)(int);
fp = fn;//正确
fp = fn(5);//错误
fp = &ptr;//错误,ptr的地址不在代码区,这两种数据类型不能转换
从上面例子可以看出:
1)不能将普通变量的地址赋给函数指针
2)不能将函数的调用给函数指针
3)可以将函数名赋给一个函数指针
函数指针用途:
1)用于实现类似C++的”多态“,指定一个名字而定义不同的函数
2)实现回调