我发现(true && false)给出0,而true && false(没有括号)给出1。这个问题可能是愚蠢的,因为我刚开始学习C ++,但是我在任何地方都找不到答案。
我执行以下操作:
cout << (true && false) << '\n';
cout << true && false << '\n';
cout << (true && false == true);
Run Code Online (Sandbox Code Playgroud)
它给了我:
0 10
看到这个之后,我变得更加困惑:
(true && false)
和之间true && false
(没有括号)有什么区别?true && false
给了我1
,所以我以为true && false
没有括号就是true
。但是,(true && false == true)
给我0
。为什么?是不是因为0
和1
不一定指示false
和true
?'\n'
第二行中的似乎不起作用。为什么?如运算符优先级表所示,<<
优先级为7,&&
优先级为14
结果,该表达式cout << true && false << '\n';
可以重写为:
(cout << true) && (false << '\n');
Run Code Online (Sandbox Code Playgroud)
评估为:
(cout << true) // Output: "1"; Evaluates to an ostream-object.
(false << '\n') // No output; Evaluates to 0, the '\n' "disappears"
[ostream-object] && 0; // No output; Evaluates to 0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
76 次 |
最近记录: |