指针算术规则中的“可能假设”是什么意思?

Lig*_*ica 5 c++ pointers pointer-arithmetic language-lawyer

在标准的指针算术规范中 ( [expr.add]/4.2,我们有:

否则,如果P指向数组元素的阵列对象的xÑ元素([dcl.array]),则表达式P + JJ + P(其中,J具有值Ĵ)点到(可能-假想)阵列元件I + Jx如果0 ? 我 + j ? n并且表达式P - J指向(可能是假设的)数组元素i ? Ĵx,如果0?一世 ?? 名词

“可能-假设”在这里是什么意思?该段落已经将结果指针限制在数组范围内。好吧,包括最后一个插槽。它指的是这个吗?

Lig*_*ica 6

是的,它是最后一个“元素”。

[basic.compound]/3: [..]出于指针算术 ([expr.add]) 和比较 ([expr.rel], [expr.eq]) 的目的,x超过n 个元素的数组的最后一个元素末尾的指针被认为是等价于指向假设数组元素n的指针,x并且类型T不是数组元素的对象被认为属于具有一个类型元素的数组T[..]