关于记录的可接受性和正确性有几个问题,例如--x++
说什么
(--x)++是等价的是否正确(x-1)?也就是说,这段代码是否正确并且不会产生未定义的行为?为什么必须在减量周围加上括号?我预计如果没有括号,构造中的编译器
--x++将首先采用前缀操作,然后是后缀操作,但由于某种原因,它会做相反的事情:error: lvalue required as decrement operand cout << --x++ << endl; ^~这个编译器行为正确吗?
程序示例:https ://ideone.com/q0Wu6U
#include <iostream>
using namespace std;
int main()
{
int x = 8;
cout << (--x)++ << endl;
cout << x << endl;
return 0;
}