对同一表达式中的不同变量使用 ++ 或 -- 运算符是否会调用 UB?

Does using the ++ or -- operator on different variables in the same expression invoke UB?

我想知道在同一表达式未定义行为中对不同变量使用递增(++)还是递减(--)运算符;比如

int i=1,j=2;
int k=i++ + j++;

上面代码中,k的值为clang,GCC and in vc中的3。

Does using the ++ or — operator on different variables in the same expression invoke UB?

没有。它不会调用未定义的行为。您可以在不同对象的表达式中多次使用 ++--。在这种情况下,每个变量仅在两个序列点内修改一次。