社区
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是怎么调用的,请了
}
}
...全文
168
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; ...
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
函数
指针
问题
求解
。
#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.
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章