西华师范大学 数学与信息学院 指针引用 ●指向函数的指针赋值后,即可引用,其一般格式为: (指针变量名)函数实参表; ●例如求两个数的最大值: int a, b, (*funp)O, max(), res, funp=max res=(“funp(a2b);比较res=max(ab}
() 5q#$%56;stu(jz{| 56vw #$ & 01AB$%; +, & +,( 22 &( +, # &( #
西华师范大学 数学与信息学院 例8-3 ●编写一个通用数值积分函数。 ●算法分析: 为了能够计算不同被积函数,将其也设计一个 参数,实际上是将被积函数的调用地址传递给 积分函数,通过指向函数的指针调用被积函数 来计算相应的函数值。例如要计算 ∫ sinxdx 可以这样调用函数 integral0: double s s= integral(0.0, 1.0, sin, 1000) 00g
jBn($;h#$/ h |c#$ fjB &$ '#$%3(9:*+ h#$ no5q#$%563(#$ %#$;/01g 3 t ¡¢3(#$ & % 3,%& ( & %
西华师范大学 数学与信息学院 c0803c子函数 函数 integral():用梯形积分法求解定积分的通用积分函数 double integral( double a, double b, double (fun)O, int n) double h =(b-a)/n double sum=((fun)(a)+(fun)(b)/2 int i: for(i=1; i<n; i++) sum +=(fun)ati) sum *e h return sum
4 # & % # 3,%& & % 3,%&3,%&3,%& +, $ 3,%&( # 3,%&,( +, * +, # + (.** ,*( +, * ,( & ,, -
西华师范大学 数学与信息学院 c0803c主函数 #include (stdio. h) #include <math /*用于调试函数 integral0的主函数* double func(double x return sin(x)+x main double sum sum= integral(0.0, 1.0, func, 1000) printf( The Integral of sin(x)+x [0,1]is%1f.ln",sum);
4 QR?STUVDWXY@VR>ZA[ QR?STUVDWX=C@AZA[ ;< { | R?@Dc\CTEF } <; £T V£T ¤ ¤Z¤ £T T¥¥ ¥ V ¥¥¥ VRSO ¦ TV ¤Z¤ P¥ Q XTVYR
西华师范大学 数学与信息学院 举例8-3-1 ●编写两个整型参数运算的通用函数 ●算法分析 定义一个指向函数的指针。 将被调用函数作参数。调用具体函数 时,对函数指针赋值,并作为实参传 递给通用函数。实现不同函数的操 作 求两个数最大、最小、相加、相乘操 作。 00g
* jk F}¡>J >?&@ EF = /w¢J£=¢J N¤7¤£¥¦ §J=¥¨© £= ª F«¬«®¯°¯±© £=