首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

指针函数求解解决方案

2012-07-16 
指针函数求解void tabulate(double (*f)(double),double first,double last,double incr){double xint i,

指针函数求解
void tabulate(double (*f)(double),double first,double last,double incr)
{
  double x;
  int i,num_intervals;
  num_intervals=ciel((last-first)/incr);
  for(i=0;i<=num_intervals;i++){
  x=first+i*incr;
  printf("%10.5f%10.5f\n",x,(*f)(x));//f是怎么调用的,请了
  }
}

[解决办法]
f是一个函数指针,f的声明如下

double f(double);

调用的时候,tabulate(f, a, b, c);由于传进入的是指向函数入口的指针,知道函数入口,就可以直接执行函数了,所以调用的时候,用(*f)(x),实际上,也可以直接用 f(x)。
[解决办法]
void tabulate(double (*f)(double),double first,double last,double incr)这里的参数double (*f)(double)是一个指向参数和返回值都为double型的函数的指针——即f,既然f指向一个函数,那么这个函数就是*f,所以调用的时候就是(*f)(x).

架设你有一个函数是double g(double d);
若f=g;//g是函数名,也是函数的地址
则通过f指针调用g函数可以这样(*f)(x).

热点排行