社区
C语言
帖子详情
怎么正确使用函数指针?
lfangqing2003
2006-05-22 11:25:40
比如我有下面两个定义:
int ListTraverse(SqList L,int (*visit)(SqList &L,int a));
int visit(SqList &L,int a);
这样调用为什么会出错?
ListTraverse(l,visit(l,i));
...全文
189
7
打赏
收藏
怎么正确使用函数指针?
比如我有下面两个定义: int ListTraverse(SqList L,int (*visit)(SqList &L,int a)); int visit(SqList &L,int a); 这样调用为什么会出错? ListTraverse(l,visit(l,i));
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sharpdew
2006-05-23
打赏
举报
回复
ListTraverse(l,visit);
悠然红茶
2006-05-23
打赏
举报
回复
ListTraverse(l,visit(l,i));的写法其实是把visit(l,i)的返回值作为参数传给ListTraverse()了,参数类型不符,当然编译会出错。应该写成ListTraverse(l,visit); 这样才表示要把函数指针传入。
Roy T
2006-05-23
打赏
举报
回复
函数名作为参数就不要再写这个函数的参数了
ListTraverse(l,visit);
就OK
看的吴伟民的数据结构吧,又&又*的,呵呵
jixingzhong
2006-05-23
打赏
举报
回复
ListTraverse(l,visit(l,i));
参数中的 visit(l,i) ...
参数只能是 函数入口地址(visit或者楼上的 &visit都可以的),
但是这个visit函数的参数就无效了 ...
lfangqing2003
2006-05-23
打赏
举报
回复
谢谢各楼,明白了一点点了.唉,蒙了,看数据结构头都大了.
0黄瓜0
2006-05-22
打赏
举报
回复
class SqList {};
int ListTraverse(SqList L,int (*pfunc)(SqList &L,int a))
{ /*定义函数指针*/
//dosomething
int c=0;
(*pfunc)(L,c);//通过函数指针调用函数
return 0;
}
int visit(SqList &L,int a)
{
//dosomething
//test
printf("visit()\n");
return 0;
}
int main()
{ SqList sl;
ListTraverse(sl,&visit);//传一个函数的指针
return 0;
}
agaric
2006-05-22
打赏
举报
回复
1.调用前需声明
2.名字是不是冲突了.
腾讯2012笔试题目
腾讯2012笔试题目,包含很多普及型很高的题目
指针函数和
函数指针
概述 指针函数和
函数指针
是C语言里两个比较绕的概念。但是不仅面试题爱考,实际应用中也比较广泛。很多人因为搞不清这两个概念,干脆就避而远之,我刚接触C语言的时候对这两个概念也比较模糊,特别是当指针函数、
函数指针
、
函数指针
变量、
函数指针
数组放在一块的时候,能把强迫症的人活活逼疯。 其实如果理解了这些概念的本质,是不需要死记硬背的,理解起来也比较容易。 指针函数 指针函数: 顾名思义,它的本质是一个函数...
为什么不直接调用函数而要
使用
函数指针
?
作者:庄严 链接:https://www.zhihu.com/question/349498301/answer/1492253088 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
函数指针
让“函数”可以是一个“变量”。 通常我们认为一件事由“动作”和“数据”组成,比如“小明泡妞”中,小明是数据,妞是数据,泡是动作。动作和数据边界清晰,各自含义也直观。 把动作数据化,真的是各种编程语言一路下来心心念念的要有各种实现各种改进的念想。就以典型面向过程式的C语言为例:.
c++类成员
函数指针
提出疑问 首先问大家一句,什么是
函数指针
? 肯定有的人会这样回答,
函数指针
?不就是指向函数地址的一个指针吗?或者就是一个存放着一个函数首地址的变量? 当然,那些有点底层基础的肯定会这样说,函数就是一堆连续的机器码,而
函数指针
,就是存放了这堆连续机器码首地址的变量。 那么大家是不是回答的时候,考虑的地方是不是仅仅局限于 一般的函数????那么成员函数呢??? 为什么得强调成员函数呢?因为成员函数包括了虚函数和非虚函数(这里涉及虚表问题,可以先简单看看列出的虚函数系列,否则接下来问题会有点难以接受。) 虚函数
如何在函数中
使用
指针?
2、传递指针数组或指针指针作为参数: 如果需要传递数组或多维数组作为函数的参数,可以
使用
指针数组或指针指针来实现。通过传递数组的首地址或指针的指针,可以在函数内部对数组进行操作。3、返回指针作为函数的返回值: 函数可以返回指针作为其返回值,以便返回动态分配的内存或者指向其他数据结构的指针。在C语言中,
使用
指针作为函数的参数或函数的返回值,可以实现对内存的直接访问和修改,以及在函数间传递复杂的数据结构。
使用
指针修改函数参数的值: 通过传递参数的指针,函数可以修改传入参数的值,使修改在函数外部也能生效。
C语言
70,025
社区成员
243,254
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章