通常,内存地址与计算机位数一致:即在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;