c++ - C++中某些类型的指针之间的距离有什么限制?

标签 c++ pointers

假设我有两个指向 T 类型的指针:

T* first = ...// whatever
T* second = ... //whatever else

我能否确定这两个指针之间的距离永远不会超过:

((size_t)(-1))/sizeof(T)?

最佳答案

您只能计算两个指针之间的距离(一个指针减去另一个指针),前提是两个指针都指向同一个数组中的元素,或者指向同一个数组的尾数。

如果两个指针满足那个约束,那么是的,两个指针之间的差的绝对值不能超过((size_t)(-1))/sizeof(T) 因为size_t 必须足够宽以表示任何对象的字节大小。

如果两个指针不满足该约束,则根本无法保证。

关于c++ - C++中某些类型的指针之间的距离有什么限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7831994/

相关文章:

c++ - 指向对象生命周期之外分配的内存的指针是 "invalid pointer[s]"还是 "pointer[s] to an object"?

c++ - 向 char* 添加文本

有人可以给我一个 "pure pointer notation"到 C 数组的例子吗?

C++11 从相同类类型的构造函数调用构造函数

c++返回 map 内对象的值

c - 通过同一结构的另一个成员访问一个结构的成员

c - 如何创建指向列表中每个成员的指针

c++ - 对齐指针操作

c++ - 2D 图形加速

c++ - 在基于范围内自动传递的参数