指针的整数表示

时间:2014-08-05 04:17:45

标签: c++ pointers

指针的整数表示是什么?

  

指针值是仅指向动态对象的安全派生指针   如果它有一个对象指针类型,它是以下之一:

     

[...]

     

- 对安全派生的指针值的整数表示的reinterpret_cast的结果;

     

[...]

我怀疑以下内容: 类型int小于任何指向类型的指针。特别是,使用reinterpret_cast无法将指针转换为int。

1 个答案:

答案 0 :(得分:3)

该术语在标准的下一段中定义。

  

整数值是安全派生指针的整数表示,仅当其类型至少与其一样大时   std::intptr_t,它是以下之一:

     

- 安全派生的指针值reinterpret_cast的结果;

     

- 安全派生指针值的整数表示的有效转换结果;

     

- 从可跟踪指针对象复制其值的对象的值,其中的时间为   复制源对象包含安全派生指针值的整数表示;

     

- 加法或按位运算的结果,其中一个操作数是a的整数表示   安全派生的指针值P,如果由reinterpret_cast<void*>转换的结果将进行比较   等于可从reinterpret_cast<void*>(P)计算的安全派生指针。