Mal*_*lan 2 c operator-precedence undefined-behavior
我找到了这篇文章:https : //en.cppreference.com/w/cpp/language/eval_order
我不知道为什么i = ++i;并且i = ++i + 2;是未定义的行为。
第一个例子:
int i = 5;
i = ++i;
Run Code Online (Sandbox Code Playgroud)
结果还是6。
如果i = ++i;被声明为未定义行为,那么也i = ++j;应该声明为未定义行为(因为赋值可以在增量之前发生?)。
第二个例子:
int i = 5;
i = ++i + 2;
Run Code Online (Sandbox Code Playgroud)
结果还是8。
如果i = ++i + 2;被声明为未定义行为,那么也i = ++j + 2;应该被声明为未定义行为(因为赋值可以在增量和求和之前发生)?