| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1342 人关注过本帖
标题:求解这个函数指针应用问题: void 值未如预期地被忽略
只看楼主 加入收藏
buddy_zhang
Rank: 2
等 级:论坛游民
帖 子:33
专家分:24
注 册:2014-5-7
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:5 
求解这个函数指针应用问题: void 值未如预期地被忽略
#include <stdio.h>
#include <stdlib.h>

void fun(int n);

int main()
{
  int (*p)(int n) = fun;
  *(p)(5);

  return 0;
}

void fun(int n)
{
    printf("%d\n",n);
}
搜索更多相关主题的帖子: include return 
2014-05-07 20:43
liaocao2014
Rank: 2
等 级:论坛游民
帖 子:16
专家分:14
注 册:2014-4-27
收藏
得分:11 
回复 楼主 buddy_zhang
难道你这一段代码运行不会出错么

int (*p)(int n) = fun;

在主函数里这里的n是什么呢,它什么时候被声明了呢?

麻烦你再描述的明白点,你觉得运行后应该是怎样的结果,初学乍道,一起探讨!
2014-05-07 21:14
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:11 
*(p)(5);
改成(*p)(5);  试试

总有那身价贱的人给作业贴回复完整的代码
2014-05-07 21:20
buddy_zhang
Rank: 2
等 级:论坛游民
帖 子:33
专家分:24
注 册:2014-5-7
收藏
得分:0 
int n 只是一个型参,可以省去只要
int (*p)(int) = fun;
这是一个函数指针的声明和初始话。
我在对p进行间接引用是,也就是*(p)(5);编译报错:void 值未如预期地被忽略
2014-05-07 21:22
buddy_zhang
Rank: 2
等 级:论坛游民
帖 子:33
专家分:24
注 册:2014-5-7
收藏
得分:0 
回复 3 楼 embed_xuel
int n 只是一个型参,可以省去只要
int (*p)(int) = fun;
这是一个函数指针的声明和初始话。
我在对p进行间接引用是,也就是*(p)(5);编译报错:void 值未如预期地被忽略
2014-05-07 21:22
liaocao2014
Rank: 2
等 级:论坛游民
帖 子:16
专家分:14
注 册:2014-4-27
收藏
得分:0 
回复 5 楼 buddy_zhang
p作为函数指针的话,应该是由一种类型将它定义为某类函数的指针

运行通过的写法有

typedef void (*fun_c)(int n);//这里将fun_c这种函数指针类型声明了,等同于与int一样是一个类型说明符

func p = NULL;//再将p定义为这种类型

p = fun;//p就可以直接等于fun

p(5);//再用这个函数

试试OK么
2014-05-07 21:28
快速回复:求解这个函数指针应用问题: void 值未如预期地被忽略
数据加载中...
 
   



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

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