C++规定 函数入口地址为函数的指针,即函数名既代表函数,又是函数的指针,称为函数指针。
指向函数的指针用于指向不同的函数,来用指针变量调用不同的函数,相当于将函数由静态调用变为动态调用,更有利于模块化设计。
------------------------------------------------------------------------------------------------------------------------------------------
来个例子使用一下,编程求取下列数学式的结果。
思路是模拟大量的梯形面积求和来求定积分,在编程过程中使用指向函数的指针这样一个功能。
#include "iostream"
#include "cmath"
using namespace std;
double Integral(double a, double b, double(*f)(double x))
{
int n = 1000, i;
double h, x, s = 0.0;
h = (b - a) / n;
for (i = 1; i <= n; i++)
{
x = a + (i-1) * h;
s = s + (f(x) + f(x + h))*h / 2;
}
return s;
}
double f1(double x)
{
return (x + 1);
}
double f2(double x)
{
return (exp(-x*x/2));
}
double f3(double x)
{
return (x*x*x);
}
int main()
{
double a, b;
cin >> a >> b;
cout << Integral(a, b, f1) + Integral(a, b, f2) + Integral(a, b, f3) << endl;
return 0;
}