1.C语言中函数有自己特定的类型

2.函数的类型由返回值参数类型参数个数共同决定

3.C语言中通过typedef为函数类型重命名

4.函数指针用于指向一个函数

5.函数名是执行函数体的入口地址

6.可通过函数类型定义函数指针:Func Type* pointer

7.也可以直接定义:type (*pointer)(parameter list) pointer为函数指针变量名,type为指向函数的返回值类型,paramter list为指向函数的参数类型列表

#include 
typedef int(FUNC)(int);int test(int i){    return i * i;}void f(){    printf("Call f()...\n");}int main(){    FUNC* pt = test;//函数指针赋值        void(*pf)() = &f;        pf();    (*pf)();        printf("Function pointer call: %d\n", pt(2));}

函数和数组指针的定义区别为:数组指针用&取出地址,而函数用&和不用都表示函数的地址。

回调函数

1.回调函数是利用函数指针实现的一种调用机制

2.回调机制原理:调用者不知道具体事件发生的时候需要调用的具体函数,被调函数不知道何时被调用,只知道被调用后需要完成的任务,当具体事件发生时,调用者通过函数指针调用具体函数

3.回调机制的将调用者和被调函数分开,两者互不依赖。

指针阅读技巧解析

1.从最里层的圆括号中未定义的标识符看起

2.首先往右看,再往左看

3.当遇到圆括号或者方括号时可以确定部分类型,并调转方向

4.重复2.3步骤,直到阅读结束、