指向函数的指针

程序编译后,每个函数都有执行第一条指令的地址即首地址,称为函数指针。函数指针即指向函数的指针变量,要间接调用函数可以使用指针变量来实现。

int(*pf)(int, int);

通过将pf与括号中的“ * ”强制组合组合在一起,表示定义的pf是一个指针,然后与下面的“ ( ) ”再次组合,表示的是该指针指向一个函数,括号里表示为int类型的参数,最后与前面的int组合,此处int表示该函数的返回值。因此,pf是指向函数的指针,该函数的返回值为int。函数指针与返回指针的函数的含义大不相同。函数指针本身是一个指向函数的指针。指针函数本身是一个返回值为指针的函数。

float(*p)(float x,float y);定义了一个指向函数的指针变量。首先c=(*p)(a,b);语句:因为指针p储存的是max函数的首地址,(*p)(a,b) 就相当于 max(a,b),函数返回较大值。其次c=(*p)(a,b);语句:因为指针p储存的是 min函数的首地址,(*p)(a,b) 也就相当于min(a,b),函数返回较小值

未经允许不得转载:国外主机测评 - 国外VPS,国外服务器,国外云服务器,测评及优惠码 » 指向函数的指针