C ++指针,++运算符行为

艾奥努特·尤金(Ionut Eugen)

因此,我在某处读到,如果我们有一个指针p,并且某些值i和j一个接一个地定义,那么堆栈上的这些值将一个接一个地定义,但是至少对我来说不是这样。

int i = 10;
int j = 20;
int *p = &i;
p++;
(*p) = 30;
std::cout << i << " " << j << " " << (*p) << "\n" ;

相反,它将打印这些值。10 20 30如果我发表评论,(*p) = 30;则内部*p将是一个空地址。

我以为在这种情况下,++运算符会将我的引用从更改为ij而the将更改my(*p)的值j,但是显然不是这种情况。

所以我想知道它们是什么意思?

拔示巴

您的代码的行为是不确定的

指针算术仅在数组内有效。您不能通过增加指向另一个对象的指针并取消对该指针的引用来访问该对象。更详细一点,它p++是定义的(一个对象可以视为一个元素数组,并且可以将指针设置为指向数组末尾的指针),但是后续的取消引用是未定义的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++中的指针运算符列表

来自分类Dev

C ++指针转换运算符

来自分类Dev

C ++:重载“对象指针” *运算符

来自分类Dev

C ++运算符重载返回指针

来自分类Dev

C ++指针的强制转换运算符

来自分类Dev

C ++运算符重载返回指针

来自分类Dev

C ++中的指针运算符列表

来自分类Dev

取消分配由全局替换运算符new返回的指针而不调用替换运算符delete的未定义行为?(C ++ 17)

来自分类Dev

C ++:使用函数指针重载<<运算符

来自分类Dev

c ++模板或+运算符从指针创建向量

来自分类Dev

C ++。类中指针数组的赋值运算符

来自分类Dev

何时对指针使用解引用运算符C ++

来自分类Dev

C++ 使用运算符删除自动(堆栈)指针

来自分类Dev

指针,* 运算符

来自分类Dev

C#+运算符的奇怪行为

来自分类Dev

在这种情况下,三元运算符与C风格的指针向上转换是否会调用未定义的行为?

来自分类Dev

在C中,如何轻松区分将*用作指针,*用作解除引用运算符,*用作乘法运算符?

来自分类Dev

运算符的指针重载

来自分类Dev

IAR C / C ++比较运算符的行为

来自分类Dev

Ternery运算符在C ++中的奇怪行为

来自分类Dev

重载C ++赋值运算符的行为类似于Java

来自分类Dev

重载运算符“ <<” c ++的意外行为

来自分类Dev

C ++-unordered_map运算符[],意外行为

来自分类Dev

C ++中三元运算符的异常行为

来自分类Dev

C中“,”运算符的行为不清楚

来自分类Dev

Ternery运算符在C ++中的奇怪行为

来自分类Dev

C:地址运算符(&)是产生指针(地址+类型)还是仅产生地址?

来自分类Dev

C ++移动语义与智能指针相关的复制构造函数和赋值运算符

来自分类Dev

C中的指针操作和运算符优先级

Related 相关文章

热门标签

归档