1:函数指针式指向函数内存的指针,一个函数在编译时被分配给一个入口地址,这个函数的入口地址就称为函数指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。
一个函数可以返回一个整数型值、字符值、实型值等,也可以返回指针型的数据,即地址,返回值的类型是指针类型。返回指针值得函数简称指针函数。
定义指针函数的一般形式为:
类型名 *函数名(参数列表)
例如,定义一个具有两个参数和一个返回值的函数的指针及一个具有同样返回值参数列表的函数的代码如下:
int sum(int x,inty);
int *a(int,int);
a=sum;
函数指针能指向返回值与参数列表的函数,当使用函数指针时,形式如下:
int c,d;
*a(c,d);
2:使用函数指针进行计算,代码如下:
// ConsoleApplication5.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; int avg(int a, int b); int sum(int a, int b); int main() { int iWidth, iLenght, iResult; iWidth = 10; iLenght = 10; int(*pFun)(int, int);//定义函数指针 cout << "pFun指向了avg" << endl; pFun = avg; iResult = (*pFun)(iWidth, iLenght);//利用函数指针调用函数 cout << "执行结果:" << iResult << endl; cout << "pfun指向了sum" << endl; pFun = sum; iResult = (*pFun)(iWidth, iLenght);//利用函数指针调用函数 cout << "执行结果:" << iResult << endl; return 0; } int sum(int a, int b) { return a + b; } int avg(int a, int b) { return (a + b) / 2; }
运行结果: