以下表达式:-
int main()
{
int x=2, y=9;
cout << ( 1 ? ++x, ++y : --x, --y);
}
Run Code Online (Sandbox Code Playgroud)
给出以下输出:-
9
Run Code Online (Sandbox Code Playgroud)
根据我的理解,它应该返回 ++y,它应该是 10。出了什么问题?
c++ conditional-operator operator-precedence prefix-operator
在我的机器上,以下表达式:-
int main()
{
int q = 0b01110001;
cout << q << endl;
cout << (~q << 6);
}
Run Code Online (Sandbox Code Playgroud)
打印以下内容:-
113
-7296
Run Code Online (Sandbox Code Playgroud)
我试过假设 16 位整数来解决它,但我的答案与按位运算后获得的值不匹配。
这仅仅是未定义行为的情况还是我在这里遗漏了什么?