我知道你可以添加一个指向int的指针,并减去两个指针,一个指针和一个int,但是你可以在指针中添加一个int。所以5 +指针。
答案 0 :(得分:3)
您可以,但限制适用。指针算术仅在数组中有效(或者在数组末尾超过1)。
以下是一些规则:
5)[...]如果指针操作数和结果都指向同一个数组对象的元素,或者一个过去的元素 数组对象的最后一个元素,评估不应产生溢出;否则,行为是 未定义。
和
6)当减去指向同一数组对象元素的两个指针时,结果就是差异 两个数组元素的下标。 [...]除非两个指针都指向同一个数组对象的元素,否则 在数组对象的最后一个元素之后,行为未定义。
粘贴在此处进行确认。
所以
int* x = new int;
int* y = new int;
没关系,但是:
y-x;
x + 4;
y - 1;
甚至使用二进制比较运算符的比较都是未定义的行为。
但是x+1
和1+x
没问题(单个对象计为大小为1的数组)
答案 1 :(得分:0)
向指针添加int
在语法上是可以的,但是有很多问题需要注意,例如:溢出错误。
理想情况下,您应该只在数组中执行此操作。