函数指针是什么


函数指针是什么

文章插图
函数指针是指向函数的指针变量 。因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数 。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数 。
举例:
如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址 。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的 。函数指针有两个用途:调用函数和做函数的参数 。
拓展:
【函数指针是什么】要明确这每一个数组元素是指向函数入口地址的指针:函数返回值类型 (*数组名[])().请注意,这里为什么要把“*数组名[]”用括号扩起来呢?因为圆括号和数组说明符的优先级是等同的,如果不用圆括号把指针数组说明表达式扩起来,根据圆括号和方括号的结合方向,那么 *数组名[]() 说明的是什么呢?是元素返回值类型为指针的函数数组 。有这样的函数数组吗?不知道 。所以必须括起来,以保证数组的每一个元素是指针 。

    推荐阅读