C/C++ 什么是句柄
句柄是一个指向指针的指针。
一个指向指针的指针保存的是另一个指针的地址,我们可以通过第一个指针来找到另一个指针,然后通过另一个指针访问到具体的数据。
Windows 需要经常在物理内存和虚拟内存之间来回移动数据。数据被移动意味着他的地址发生变化,如果我们还用之前的地址来访问它,那么肯定是会出错的。如何解决这个问题?
为了解决这个问题,Windows 系统专门腾出一块内存空间来保存数据在内存中的地址变化,Windows 每次移动数据偶,都要把数据的新地址告知这个内存空间来保存。而记录地址变化的这块内存空间的地址是保持不变的。
我们把这个不变的地址叫作句柄。我们便可以通过改句柄找到数据的最新地址,然后访问该数据。
当然,每次重启程序的时候,Windows 操作系统分配的句柄都是不一样的,就像每次抽奖抽到的号码不同一样,但也有可能,不过几率太小。
参考:
《零点起学通C++》 P295 (316 / 861)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了