double (*pf) (int); int是什么意思?

wgf42421 2009-12-23 08:53:35
double (*pf) (int);
int是什么意思
给完整解释一下这一行代码什么意思
...全文
700 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
GXYVIP 2009-12-24
  • 打赏
  • 举报
回复
这个问题我也发贴来问过,,可是别人回答得不清不楚,最后还是在C++ PRIMER相关的章节里翻了N遍才弄清楚!
GXYVIP 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wgf42421 的回复:]
double (*pf) (int);
Q1.指针什么类型?double?
Q2.double *pt(int)和那个有什么区别?
[/Quote]

double (*pf) (int); /* 是一个指向一个接受一个int类型,反回double的函数的指针,跟double *a;一样,a接受一个double类型变量的地址,而double (*pf) (int) 则接受一个函数的地址*/
double *pt(int); // 是一个普通的函数,这个函数反回一个指向double的指针
xueerwycg 2009-12-24
  • 打赏
  • 举报
回复
学习学习
zgh1990 2009-12-24
  • 打赏
  • 举报
回复
一个指向INT类型的返回值是DOUBLE的函数指针
foxpeter 2009-12-24
  • 打赏
  • 举报
回复
int 算是形参的类型声明吧
不过这里只有声明 省略了行参
tianzhaohui1 2009-12-24
  • 打赏
  • 举报
回复


了解过函数指针, 也能看懂

就是没有过~

咱一般都啥时候用呀!
YUI0820 2009-12-24
  • 打赏
  • 举报
回复
学习学习!
qdbje 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ypb362148418 的回复:]
引用 2 楼 macrojj 的回复:
pf是一个函数指针
double (*pf) (int);
这个函数指针可以指 返回double 参数类型为int的函数


支持
[/Quote]
支持!
ypb362148418 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 macrojj 的回复:]
pf是一个函数指针
double (*pf) (int);
这个函数指针可以指 返回double 参数类型为int的函数
[/Quote]

支持
damo_xu 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wgf42421 的回复:]
double (*pf) (int);
Q1.指针什么类型?double?
Q2.double *pt(int)和那个有什么区别?
[/Quote]

(从没用过,大概说说,用词可能不准确)
函数指针跟其他指针没什么不同,只不过规定了它指向一个常量,不存在默认类型转换等等。
有什么用呢?比如把它当作参数传给另一个函数,把它存到数组里等等。
double (*pf) (int);
这一行规定了声明它的语法,既然是指向函数,就必须带函数的特征值,比如返回值,参数等等。

double *pt(int)
这种类似的东西不要记也不要去学,因为只有2B面试官才需要掌握。
冻结 2009-12-24
  • 打赏
  • 举报
回复
共同学习
cir2633 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wgf42421 的回复:]
double (*pf) (int);
Q1.指针什么类型?double?
Q2.double *pt(int)和那个有什么区别?
[/Quote]

1指针指向的类型是函数, 此函数的原型是double FuncName(int)
2语句里的星号会会被编译器视作(int*) pt(int)
即编译器把Q2里的声明视作一个函数, 函数返回int*, 形参是int
tsh185 2009-12-24
  • 打赏
  • 举报
回复
double (*pf) (int); 其中pf 是个函数指针
pf只能 指向 返回类型为 double 且 带 一个 整形 参数的函数 eg: double 函数名(int); 形式的函数

double *pt(int) 表示 pt 是个函数 返回类型 为 double* 且 带 一个 整形 参数的函数

eg

double* pt(int a){
double b = 3.1415 ;
b*=a ;
return &b ;

} // 注意 我只是 举个例子 b 是 局部变量 返回他地址 比较 危险

wgf42421 2009-12-24
  • 打赏
  • 举报
回复
double (*pf) (int);
Q1.指针什么类型?double?
Q2.double *pt(int)和那个有什么区别?
dskit 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 wgf42421 的回复:]
double (*pf) (int);
int是什么意思
给完整解释一下这一行代码什么意思

[/Quote]

定义了个函数指针pf

int 表示这个指向函数的指针指向的函数是一个只带有一个int型参数的函数。

如:

double (*pf) (int);

double test(int a){}

pf = test;

double ans = pf(5);
Crazy_program 2009-12-23
  • 打赏
  • 举报
回复
介意上面的程序这句加上NULL。安全。 double (*pf) (int)=NULL;

其实意思很简单,就像是 定义变量指针一样的。
只是函数指针有参数。(int)。

fire123cba 2009-12-23
  • 打赏
  • 举报
回复
共同学习
fire123cba 2009-12-23
  • 打赏
  • 举报
回复
共同学习
macrojj 2009-12-23
  • 打赏
  • 举报
回复
pf是一个函数指针
double (*pf) (int);
这个函数指针可以指 返回double 参数类型为int的函数
mstlq 2009-12-23
  • 打赏
  • 举报
回复
函数指针……
例子

#include <iostream>
using namespace std;

double fun (int i)
{
return 1.5*i;
};

int main()
{

double (*pf) (int);
pf = fun;
cout<<pf(1)<<endl;
return 0;
}

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧