关于函数指针
isaxu 2003-01-23 03:18:35 #include<stdafx.h>
#include<iostream.h>
#include<math.h>
/* 没有函数的指针
double sigma(double(func)(double),double db,double de)
{
double dt=0.0;
for(double d=db;d<de;d+=0.1)
dt += func(d);
return dt;
}
void main()
{
double dsum;
dsum=sigma(sin,0.1,1.0);
cout<<"the sum of sin from 0.1 to 1.0 is "<<dsum<<endl;
dsum=sigma(cos,0.5,3.0);
cout<<"the sum of cos from 0.5 to 3.0 is "<<dsum<<endl;
}
*/
/*有函数的指针*/
double sigma(double(*func)(double),double db,double de)
{
double dt=0.0;
for(double d=db;d<de;d+=0.1)
dt += func(d);
return dt;
}
void main()
{
double dsum;
dsum=sigma(sin,0.1,1.0);
cout<<"the sum of sin from 0.1 to 1.0 is "<<dsum<<endl;
dsum=sigma(cos,0.5,3.0);
cout<<"the sum of cos from 0.5 to 3.0 is "<<dsum<<endl;
}
double sigma(double(func)(double),double db,double de)
double sigma(double(*func)(double),double db,double de)
这两个程序表面的区别是多了一个 *
但是我知道执行的机制肯定是不一样的,但具体是怎样的我很迷惑,请高手指点!:)