56 函数指针(指向函数的指针)
1,一个函数总是占用一段连续的内存区域,函数名在表达式中有时也会被转换为该函数所在的内存区域的首地址,这和数组名非常相似
2,把函数的这个首地址(或称入口地址)赋予一个指针变量,使指针变量指向函数所有的内存区域,然后通过指针变量就可以找到并调用该函数,这种指针就是函数指针
3,函数指针定义
returnType (*pointerName) (param list);
①returnType 为函数指针指向的函数返回值类型
②pointerName 为函数指针名称
③param list 为函数指针指向的函数的参数列表
④参数列表中可以同时给出参数的类型和名称,也可以只给出参数的类型,省略参数的名称
⑤注意()的优先级高于 *,第一个括号不能省略,如果写成 returtType *pointerName(paream list);就成了函数原型,它表明函数的返回值类型是 returnType*
4,用函数指针来是实现对函数的调用,返回两个整数中的最大值
函数指针内存布局:
5,指针使用一览: