1. 函数指针 、 指针函数、返回值为函数指针的函数
https://blog.csdn.net/wch0lalala/article/details/105796955
1.1 指针函数:返回一个指针类型的函数
定义方式:int* fun(); int* p; p = fun();
1.2 函数指针:指向函数的入口,函数体开始的位置,是一种特殊的指针
定义方式:int(*fun)(); int* p; p = fun();
一般用于回调函数,可以作为函数参数
函数指针作函数参数
#include<iostream>
using namespace std;
void fun(int k,char c)
{
cout << "this is fun2 call: " << k << " " << c << endl;
}
void fun1(void(*pfun)(int, char),int a, char c)
{
pfun(a, c);
}
int main()
{
fun1(fun, 1, 'a');
return 0;
}
/*output
this is fun2 call: 1 a
*/
1.3 返回值为函数指针的函数
void (* set_malloc_handler(void (*f)()))()
从里往外看:
void(*f)():是一个函数指针,返回值为 void 的无参列表的函数,f是指向一个函数的指针;
* se_malloc_handler(void(*f)()):是一个指针函数,返回值为指针的、参数为函数指针的函数
void ( * se_malloc_handler ( void(*f)() ) )():是一个指针函数,返回值是void,参数是一个指针函数
2. 回调函数
3. C 和 C++ 的区别