美文网首页PC开发C++
C++ 指针和句柄的区别

C++ 指针和句柄的区别

作者: JasonChen8888 | 来源:发表于2018-02-27 09:45 被阅读23次

指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址,指针对应着一个数据在内存中的地址,得到了指针就可以自由地修改该数据
句柄实际上是一种指向某种资源的指针,或者说是一种指向指针的指针
在windows系统中的内存管理一般会将当前处于空闲状态的对象的内存释放掉,当需要访问的时候再重新提交分配物理内存,从而导致对象的物理地址是变化的,
这样就不允许系统直接通过指针来访问(物理地址不断变化)的对象。
所以windows 提供了专门设计了句柄为了解决指针指向的对象的内存地址不断变化的,由句柄来指向当前对象的指针。
系统专门为各种应用程序腾出了一定的内存地址(句柄)专门用来记录这些变化的地址(这些内存地址就是指向指针的指针),这些内存地址本身是一直不变化的。windows内存管理器在移动某些对象之后,他会将这些对象新的内存地址传给句柄,告诉他移动后对象去了哪里。

句柄(稳定的)----->记载着对象在内存中的地址---->对象在内存中的地址(不稳定的)---->记载着实际对象的地址。
image.png

相关文章

  • C++ 指针和句柄的区别

    指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址,指针对应着一个数据在内存中的地址,得到了指针就可以...

  • 句柄与指针

    句柄与指针 句柄与普通指针的区别在于,指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以...

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • Java基础

    Java和C++的区别?a. Java没有指针。c++可以通过指针直接操作内存,但这个动作是危险的,指针引起的操作...

  • 指针和引用的区别

    参照lyd_253261362的专栏的文章详细介绍=====c++中的引用与指针的区别 c++中的引用与指针的区别...

  • Go教程第十篇:指针

    指针 在这篇教程中,我们将学习Go里面的指针是如何工作的,以及Go的指针和C/C++的区别和差异。 什么是指针 ?...

  • 指针和引用的辨析

    先来看两个图 指针与引用的区别 1.指针在C和C++中均有,而引用是C++独有的特性(*指针申明符号,&引用申明符...

  • java中的引用与c++中的指针的区别

    java中的引用与c++中的指针的区别 Java的引用和C++的指针都是指向一块内存地址的,通过引用或指针来完成对...

  • const理解

    关于const *和* const的理解,可以参考[C C++ OC指针常量和常量指针区别]这篇文章。 该篇文章中...

  • 句柄和直接指针

    直接指针:通过雷鸣直接调用类里面的static方法或者是常量。 句柄:A a = new A(); a = new...

网友评论

    本文标题:C++ 指针和句柄的区别

    本文链接:https://www.haomeiwen.com/subject/ynlpxftx.html