| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 371 人关注过本帖
标题:函数指针定义问题
只看楼主 加入收藏
kechujian
Rank: 1
等 级:新手上路
帖 子:22
专家分:5
注 册:2011-3-17
结帖率:100%
收藏
 问题点数:0 回复次数:4 
函数指针定义问题
#include<stdio.h>
#include<math.h>
main()
{
    float (*fp);
    float fsin(float);
    .
    fp=fsin;
    .
    .
    .
}
float fsin(float x)
{return sin(x);}

为什么还要定义函数fsin,为什么不直接fp=sin?
搜索更多相关主题的帖子: return 
2011-04-25 00:42
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
可以直接fp=sin,不过你的指针变量定义不对。
float (*fp);  -->  double (*fp)(double);
程序代码:
#include <stdio.h>
#include<math.h>
int main()
{
    double (*fp)(double);

    fp=sin;
    printf("%lf\n",fp(3.14/2));

    return 0;

}


 
2011-04-25 07:43
liuzhehao200
Rank: 1
等 级:新手上路
帖 子:3
专家分:1
注 册:2011-4-15
收藏
得分:0 
(*fp)()和sin()分别是函数指针和函数。可以将sin函数输出值代入(*fp)()中?
这个是怎么理解的?
2011-04-25 10:09
kechujian
Rank: 1
等 级:新手上路
帖 子:22
专家分:5
注 册:2011-3-17
收藏
得分:0 
不是将sin的值输出给(*fp),而是用fp指向sin,不过sin的定义是double sin(double),所以,要定义double (*fp)(double);不过如果一时间记不清sin的定义的话,还是定义一个fsin,然后,fp再指向fsin稳当点
2011-04-25 10:23
kwxx
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:309
专家分:913
注 册:2009-5-11
收藏
得分:0 
fp是 函数指针变量 ,函数名 sin  是函数sin()的 函数指针 (函数的入口地址) 。所以可以将 函数指针 sin 赋给 fp。你可以理解成:这时候 fp的值 就是 sin,或 这时候 指针fp 指向了函数 sin .但不能理解成:“可以将sin函数输出值代入(*fp)()中。”
2011-04-25 10:25
快速回复:函数指针定义问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.094194 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved