C++ 的指针和句柄

2748阅读 0评论2012-08-06 glinuxi
分类:C/C++

   在学习计算机相关知识过程中,经常会听到‘句柄’这个词,总是半懂不懂的。
   
  1、句柄,是整个windows编程的基础。一个句柄是指使用唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同实例。应用程序通过句柄访问相应对象的信息,但是据并不是指针,不能直接通过它来阅读文件中的信息。
 2、对于c++中的句柄和指针容易混淆。
    指针:他是内存的编号,通过它我们可以直接对内存进行操作,只要地址不变,我们操作的物理地址业界不变。----与句柄的重大区别。
   句柄:一般是指向系统资源的位置,也可以说是地址,但是这些地址一直保持不变。其实,对于windows 系统来说支持的是虚拟内存的技术,统一时间内可能有些资源被换出,有些资源被换进来。因此同一个资源在不同的时刻物理位置是不同的。window就是通过句柄来处理同一资源物理位置不断变化的问题。在window中固定的位置存储了一张表:记录了所有资源的实时地址,句柄其实没有直接指向资源的物理地址,而是指向对应表中的某一项,这样无论资源的物理地址怎么换,通过句柄都可以实时的找到他的实时位置。
3、指针其实指向的是对象,与迭代器类似,指针提供对其所指对象的简介访问,只是指针结构更加通用一些。指针用于指向单个对象,而迭代器只能用于访问容器内的具体元素


上一篇:C++ string 的二三事
下一篇:深入浅出之正则表达式(二)