c++ - 指针算术规则中的“可能假设”是什么意思?
问题描述
在指针算术 ( 的标准规范中[expr.add]/4.2
,我们有:
否则,如果
P
指向具有n 个元素 ([dcl.array])的数组对象的数组元素i ,则表达式and (其中的值为j)指向if 0的(可能是假设的)数组元素i + j ≤ i + j ≤ n并且表达式指向if 0 ≤ i - j ≤ n的(可能是假设的)数组元素i - j。x
P + J
J + P
J
x
P - J
x
这里的“可能假设”是什么意思?该段落已经将结果指针限制在数组范围内。好吧,包括一个过去的插槽。这就是它所指的吗?
解决方案
是的,它是一个过去的“元素”。
[basic.compound]/3:
[..]出于指针算术 ([expr.add]) 和比较 ([expr.rel], [expr.eq]) 的目的,在n 个x
元素的数组的最后一个元素末尾之后的指针被认为是等效于指向假设数组元素n的指针,并且类型不是数组元素的对象被认为属于具有一个类型元素的数组。[..]x
T
T
推荐阅读
- ssl - ITfoxtec - ADFS SAML2 根据验证程序,远程证书无效
- python-3.x - 这是什么 KivyMD 功能?
- selenium - Selenium webdriver 在亚马逊中找不到添加到购物车按钮
- discord - Discord Bot - 将总反应限制为 1
- list - 如何创建页面列表并立即导航到不同页面
- r - 如何从 R Studio 中的数据框中删除大量文本
- python - 在文件系统中找不到 python 的标准库
- reactjs - useState 未正确更新数组
- c# - Unity3D使用法线向量面对世界中的物体
- mysql - 我想在执行 sql 之前提供附加条件