假设我有两个指向 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/