什么是句柄?什么又是指针!

q635115782 2012-04-22 01:52:33
RT
...全文
181 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangnadh 2012-04-22
  • 打赏
  • 举报
回复
……这都是基本概念吧
老毕 2012-04-22
  • 打赏
  • 举报
回复
可能我的比喻不是很恰当,希望能对你理解句柄Handle与指针Pointer有一些帮助。

如果说鱼钩是Pointer,那么鱼竿就是Handler,上钩的鱼就是对应的资源。鱼儿咬了钩,可能带着钩在水下四处跑,但无论钩在水下被带到多远,我们总可以通过鱼竿找到它。
xupeihuagudulei 2012-04-22
  • 打赏
  • 举报
回复
两个差不多的意思
crystal_lz 2012-04-22
  • 打赏
  • 举报
回复
简而言之 句柄 就是对资源的唯一标示 就相当于人的身份证 唯一标示一个资源
比如 一个窗体的句柄 就唯一标示那个窗体
指针 只指向一个内存地址 比如
int b = 100;
int * a = &b;
那么就表示 a 指向的是b在电脑内存中的一个地址、、、
orochiheart 2012-04-22
  • 打赏
  • 举报
回复
来学习的 确实不懂
  • 打赏
  • 举报
回复
C#已经避开指针了。
楼主是学C++的吧?
大狗狗 2012-04-22
  • 打赏
  • 举报
回复
mizuho_2006是常见的解释说法,严重支持zanfeng,这问题应移到VC版,哈哈

句柄和指针不是一个层次的东西。软件系统是分层的。windows是用C/C++开发的,C/C++是底层,win32 SDK是上层。

不在一个层次东西,是不具比较性的。硬去比较,只会走向岐途。

可以比较指针和引用。
可以比较句柄和hinstance。
salmonl 2012-04-22
  • 打赏
  • 举报
回复
C#中回避指针
足球中国 2012-04-22
  • 打赏
  • 举报
回复
楼主应该把这个贴子移动至vc版。可能会得到更好的答案。
threenewbee 2012-04-22
  • 打赏
  • 举报
回复
句柄相当于一个HashID,指针用来代表内存地址。之所以用句柄,是因为地址对于Windows这种多任务的系统来说是没办法跨进程的。另外就是系统对象本身是受保护的,不允许直接访问。
mizuho_2006 2012-04-22
  • 打赏
  • 举报
回复
句柄,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用它句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。

指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中寄存器(Register)。指针一般出现在比较近机器语言的语言,如汇编语言或C语言。面向对象的语言如Java一般避免用指针。指针一般指向一个函数或一个变量。在使用一个指针时,一个程序既可以直接使用这个指针所储存的内存地址,又可以使用这个地址里储存的变量或函数的值。

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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