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++ 的区别