Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 关于括号、布尔逻辑和'\n';_C++_Boolean Logic - Fatal编程技术网

C++ 关于括号、布尔逻辑和'\n';

C++ 关于括号、布尔逻辑和'\n';,c++,boolean-logic,C++,Boolean Logic,我发现(true&&false)给出0,而true&&false(不带括号)给出1。 这个问题可能很愚蠢,因为我刚开始学习C++,但我在任何地方都找不到答案 我运行了以下命令: cout << (true && false) << '\n'; cout << true && false << '\n'; cout << (true && false == true); coutcout如

我发现(true&&false)给出0,而true&&false(不带括号)给出1。 这个问题可能很愚蠢,因为我刚开始学习C++,但我在任何地方都找不到答案

我运行了以下命令:

cout << (true && false) << '\n';
cout << true && false << '\n';
cout << (true && false == true);

cout
cout如图a所示,
&&
的优先级低于
括号仅在周围运算符的上下文中更改语义。您忽略了这些(我说的是
运算符,运算符优先级第二行是:
(事实上,我能看到人们谈论
a&b&c
a&b&c
之间的区别吗?但直到现在我才意识到@drescherjm仍然是完全准确的。就我个人而言,这对我来说比abelenky的答案更有意义。@TedLyngmo我看不出
有什么办法,对吗,我是这样的专注于
cout
0
    10
(cout << true)   &&   (false << '\n')   ==
(cout << true)   &&   (false << 10)     ==   // right side: 0 << 10
(cout << true)   &&   0                 =>   // true is sent out here
    bool(cout)   &&   0                 =>
         true    &&   0
               false

(cout << true) && (false << '\n');
(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
cout << (true && false) << '\n';
(cout << true) && (false << '\n');
cout << (true && (false == true));