通常,内存地址与计算机位数一致:即在32位机上,其内存地址也用32位表示,即DWORD。64位则为unsigned long long。
现假设有一个地址为0x12345678,现要取出该地址内容(假设该内容存储的是int)。
则做法如下:
首先将该地址强制转换位指针。
然后通过对指针取内容获取该地址内容。
int *p = (int *)0x12345678;
cout<<*p<<endl;
更优的做法:*((int *const)0x12345678)
因为0x12345678是一个常量,所以定义一个指针常量(int *const p,指向的地址为常量,内容可改变)做法更优。
区分一下:
常量指针:指向常量的指针,地址可变,内容不可变。eg: const int *p;
指针常量:指针本身是常量,地址不可变,内容可变。eg: int *const p;
转载于:https://blog.51cto.com/whatever957/1623724