什么情况下需要定义指针的指针函数

appleshao 2009-06-08 01:02:16
什么情况下需要定义指针的指针函数?
...全文
106 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
appleshao 2009-06-09
  • 打赏
  • 举报
回复
这个可能是我没问好,
void** GetNextPtr(void* p) const; //这个函数..

一般什么情况下需要返回** ? 因为在我所学的知识里面来看,所有问题都可以指针解决,为什么要指向指针的指针?
是因为执行效率?还是其他?
光宇广贞 2009-06-08
  • 打赏
  • 举报
回复
楼主的问题太****了!


咱还是讨论一下,为什么 CALLBACK 是 __stdcall 而不是 __cdecl 吧,这个比楼主那个多那么点技术含量……
pathuang68 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wangask00 的回复:]
没错
概念应该是函数指针
c++经常说回调函数,回调函数就是将函数地址作为参数,传入另一个函数了,这之前要先定义函数指针类型
[/Quote]
中肯!
wangask00 2009-06-08
  • 打赏
  • 举报
回复
没错
概念应该是函数指针
c++经常说回调函数,回调函数就是将函数地址作为参数,传入另一个函数了,这之前要先定义函数指针类型
hjjdebug 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 appleshao 的回复:]
void **p()

什么时候需要定义这种类型的函数 要2个*?
[/Quote]
当你需要使用指针函数地址时,需要使用2个*。 不过你上面定义有点问题,指针函数需要有额外的()把* 括起来。
参考下面代码:

#include <stdio.h>

typedef void (*pFun)(void);
typedef void (**pFunAdress)(void);

void test()
{
}

void test2(pFunAdress pAdr)
{
}
void main(void)
{
pFun p=test;
test2(&p);
}

pathuang68 2009-06-08
  • 打赏
  • 举报
回复
当你需要将函数作为参数进行传递的时候,比如你想要实现类似C#中的代理功能的时候。
请参考:C/C++中指针和引用之相关问题研究 中关于函数指针和函数引用部分。
至善者善之敌 2009-06-08
  • 打赏
  • 举报
回复
PC机中的虚拟内存和程序中的句柄都是利用指针的指针进行操作的
飞天御剑流 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 appleshao 的帖子:]
什么情况下需要定义指针的指针函数?
[/Quote]

觉得你可能连概念都还没区分清楚。

从上下文来看,你想问的应该是指向函数的指针吧??指向函数的指针叫函数指针,不是指针函数,指针函数是一个函数,它的返回值是指针。

lpf000 2009-06-08
  • 打赏
  • 举报
回复
void point(void **p)
{
}
是指形参吗
需要改变2级指针指向的一级指针的值,就这样传递
码侬 2009-06-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 appleshao 的回复:]
void **p()

什么时候需要定义这种类型的函数 要2个*?
[/Quote]
返回值为void **的时候
码侬 2009-06-08
  • 打赏
  • 举报
回复
需要外部开辟内存时,变量定义成指针的指针类型
Ryanwen 2009-06-08
  • 打赏
  • 举报
回复
定义指针的指针函数? 什么意思?重载*运算符?
appleshao 2009-06-08
  • 打赏
  • 举报
回复
void **p()

什么时候需要定义这种类型的函数 要2个*?

65,211

社区成员

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

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