首页 > 其他 > 详细

将地址转换为指针

时间:2015-03-24 19:45:58      阅读:238      评论:0      收藏:0      [点我收藏+]


通常,内存地址与计算机位数一致:即在32位机上,其内存地址也用32位表示,即DWORD。64位则为unsigned long long。


现假设有一个地址为0x12345678,现要取出该地址内容(假设该内容存储的是int)。

则做法如下:

  1. 首先将该地址强制转换位指针。

  2. 然后通过对指针取内容获取该地址内容。

    int *p = (int *)0x12345678;

    cout<<*p<<endl;

更优的做法:*((int *const)0x12345678)

因为0x12345678是一个常量,所以定义一个指针常量(int *const p,指向的地址为常量,内容可改变)做法更优。


区分一下:

常量指针:指向常量的指针,地址可变,内容不可变。eg: const int *p;

指针常量:指针本身是常量,地址不可变,内容可变。eg: int *const p;

本文出自 “whatever957” 博客,请务必保留此出处http://whatever957.blog.51cto.com/6835003/1623724

将地址转换为指针

原文:http://whatever957.blog.51cto.com/6835003/1623724

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!