2.9.5 指向函数的指针
在定义一个函数之后,编译系统为每个函数确定一个入口地址,当调用该函数的时候,系统会从这个“入口地址”开始执行该函数。存放函数入口地址的变量就是一个指向函数的指针,简称为函数指针。函数指针定义的一般形式如下:
- 类型标识符(* 指针变量名) ( );
类型标识符为函数返回值的类型。在C语言中,( )的优先级比*高,因此,“* 指针变量名”外部必须用括号,否则指针变量名首先与后面的( )结合。
函数指针必须赋初值,才能指向具体的函数。由于函数名代表了该函数的入口地址,因此可以直接用函数名为函数指针变量赋初值,即:
- 函数指针变量名= 函数名;
例如
- double fun( ); /*函数说明*/
- double (* f )( ); /*函数指针说明*/
- f=fun; /*f指向fun函数*/
函数指针经定义和赋值之后,在程序中可以应用该指针,目的是调用被指针所指的函数。由此可见,使用函数型指针,增加了函数调用的方式。