相关疑难解决方法(0)

是否对未指向序列未定义行为中的元素的指针递增/递减或添加整数值?

我知道指针(指向数组元素)和迭代器可以递增/递减以遍历元素序列,并且可以在序列中来回跳转元素。

但是如果我增加一个指向单个对象的指针或向它添加一个整数值会发生什么?这是未定义的行为还是可以但我们无法访问该内存?

int x = 551;
int* p = &x;
++p;
--p;
std::cout << *p << '\n';
Run Code Online (Sandbox Code Playgroud)

因为我已经读过我们不应该增加/减少不指向序列或数组中元素的指针。

那么有人可以解释会发生什么以及我的示例是否正常(取消引用指针 p)?谢谢!

c++ pointers pointer-arithmetic language-lawyer

11
推荐指数
1
解决办法
231
查看次数