gpt4 book ai didi

c++ - 指针增量 - 奇怪

转载 作者:搜寻专家 更新时间:2023-10-31 00:17:36 25 4
gpt4 key购买 nike

struct BLA
{
int size_;

int size()const{ return size_; }
}

int x;
BLA b[ 2 ];
BLA * p = &b[ 0 ];

b[ 0 ].size_ = 4;
b[ 1 ].size_ = 6;

当我编译这一行时:

x = p->size_ + (p++)->size_;

我收到了预期的结果。但是,当我编译这一行时(没有前一行):

x = p->size() + (p++)->size();

然后我得到不同的结果。 'p' 不会与上一行同时递增。有人可以解释一下吗?在 VS 2008 和 VS 2010 上试过。

最佳答案

在没有中间序列点的情况下单独读取和修改变量是未定义的行为。您已经看到了其后果的一个很好的例子。

关于c++ - 指针增量 - 奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13009005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com