社区
C语言
帖子详情
指针函数求解
w346581442
2012-06-28 02:20:20
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是怎么调用的,请了
}
}
...全文
173
7
打赏
收藏
指针函数求解
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是怎么调用的,请了 } }
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
彭家老三
2012-06-28
打赏
举报
回复
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).
iEverX
2012-06-28
打赏
举报
回复
f是一个函数指针,f的声明如下
double f(double);
调用的时候,tabulate(f, a, b, c);由于传进入的是指向函数入口的指针,知道函数入口,就可以直接执行函数了,所以调用的时候,用(*f)(x),实际上,也可以直接用 f(x)。
w346581442
2012-06-28
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
如果没有看错的话,你这个是回调函数,
把f作为一个参数传入函数tabulate()中,并且这个函数tabulate调用另一个
函数ciel();而这个f就是是函数ciel();
希望你懂了
[/Quote]
我确实没懂
xitijie
2012-06-28
打赏
举报
回复
那的看你传给f的是那个函数名,是哪个函数就调用那个函数,至于(*f)(x)这种形式与f(x)等同
彭家老三
2012-06-28
打赏
举报
回复
??函数指针,指针函数。
赵4老师
2012-06-28
打赏
举报
回复
给个前两天我回复另一贴用函数指针的例子。
http://topic.csdn.net/u/20120626/09/a2269fa7-e4b6-4cb5-86cc-904449b6ffec.html
dx364797629
2012-06-28
打赏
举报
回复
如果没有看错的话,你这个是回调函数,
把f作为一个参数传入函数tabulate()中,并且这个函数tabulate调用另一个
函数ciel();而这个f就是是函数ciel();
希望你懂了
用指向
函数
的
指针
求解
定积分
关于用指向
函数
的指向解决求定积分的问题
C++
指针
函数
与
函数
指针
C++
指针
函数
与
函数
指针
指针
预热知识: 1 .
指针
就是地址 2 .
指针
的类型应该与变量类型匹配 例如 int a = 2; //
指针
pa是int*类型,所以只能存放int类型变量a的地址 //绝对不能存放char、double...等类型变量的地址 int *pa = &a;
指针
函数
返回值为
指针
(地址)的
函数
,下面是一个返回变量地址的
函数
#include "stdafx.h" #include <iostream> using namespace std; int *
C++
函数
模板+
函数
指针
二分法
求解
方程的根
template<typename T> T integral(T(*pFun)(T), T a, T b, int n) { T dx = (b - a) / n; T s = (pFun(a) + pFun(b)) / 2; for (int i = 1; i < n; i++) { s += pFun(a + i * dx); } return s; ...
C
函数
指针
问题
求解
。
#include "stdio.h" int(*ptr)(int, int); int Add(int c1, int c2) { return c1 + c2; } void main(void) { int a = 10; int b = 20; int c = 0; c = a; //这里是把a的值赋值给c 了。 /************************/ ptr = &Add; /* 这里看不出 ptr 与 Add 有明显的关系呀? ptr 里的数据也不是 Add.
PTA
函数
和
指针
6-2
求解
一元二次方程实根的
函数
要求计算一元二次方程ax2+bx+c=0(a=0)的根。 主
函数
中给出3个浮点系数a、b、c,调用
函数
rootOfEquation()
求解
方程的实根。方程的根通过
指针
类型的参数x1、x2传回主
函数
,其中x1是值较大的根,x2是值较小的根。 若方程有两个相等的实根,
函数
返回1; 若方程有两个不等的实根,
函数
返回2; 若方程无实根,
函数
返回0。
函数
接口定义: int rootOfEquation(double a, double b, double c, double *x1, double *x2);
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章