Tag: 序列 点

C运算符+ =序列点?

这是定义的行为吗? *p += *p–; 并且,如果是,它是否等于{ p[0] += p[0]; –p; } { p[0] += p[0]; –p; } { p[0] += p[0]; –p; }或{ p[-1] = p[0]; –p; } { p[-1] = p[0]; –p; } { p[-1] = p[0]; –p; } ? 我猜测是否定义取决于+=是否具有隐式序列点,如果有,我的猜测是第二个块应该是正确的。 编辑:我认为这不是建议问题的重复,因为主要问题是什么是序列点以及如何影响行为。 在我的情况下,我清楚地知道序列点是什么,问题是关于+=运算符是否具有隐式序列点。