假设我有两个指向T
的指针:
T* first = ...// whatever
T* second = ... //whatever else
我可以确定这两个指针之间的距离永远不会超过:
((size_t)(-1))/sizeof(T)
?
答案 0 :(得分:13)
如果两个指针指向同一个数组中的元素,或者指向同一个数组的一个结尾,则只能计算两个指针之间的距离(从另一个指针中减去一个指针)。
如果两个指针符合该约束,则是,两个指针之间差异的绝对值不能超过((size_t)(-1)) / sizeof(T)
,因为size_t
必须足够宽以表示任何对象的大小(以字节为单位)
如果两个指针不符合该约束条件,则根本无法保证。