指针的整数表示形式

Integer representation of pointer

本文关键字:表示 整数 指针      更新时间:2023-10-16

指针的整数表示是什么?

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

[…]

—对安全派生的指针值的整数形式进行reinterpret_cast的结果;

[…]

我的疑问如下:类型int小于任何指向类型的指针。特别是,指针不能使用reinterpret_cast强制转换为int。

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

整数值只有在其类型至少为的情况下,才是安全派生指针的整数表示形式std::intptr_t,它是下列之一:

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

—安全派生的指针值的整数形式的有效转换的结果;

—对象的值,该对象的值是从可跟踪指针对象复制的,其中在的时候源对象的副本包含安全派生的指针值的整数表示;

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