C++ C++;-| |操作员是如何工作的?

C++ C++;-| |操作员是如何工作的?,c++,boolean,return,C++,Boolean,Return,我在程序中见过这种语法,但我不确定返回部分会发生什么。| | |(或)是什么意思?这是否意味着当a和b中至少有一个为true时,该方法返回true,当这两个false时,该方法返回false bool A::truthValue() { bool a = true; bool b = true; if(........) a= false; if(........) b=false return (a || b); }

我在程序中见过这种语法,但我不确定返回部分会发生什么。| | |(或)是什么意思?这是否意味着当
a
b
中至少有一个为
true
时,该方法返回
true
,当这两个
false
时,该方法返回
false

    bool A::truthValue() {
    bool a = true;
    bool b = true;
    if(........)
       a= false;
    if(........)
       b=false

    return (a || b);
}

如果b或a为true,则返回true。这意味着结果是(见表):

实际上,在您的特定情况下,只有当
if
语句都变为true时,才会返回false


编辑因此-您的建议是正确的。

如果b或a为真,则返回真。这意味着结果是(见表):

实际上,在您的特定情况下,只有当
if
语句都变为true时,才会返回false

编辑因此-您的建议是正确的。

如果ab为真,则表示返回真。

如果ab为真,则表示返回真

这是否意味着,当a和b中至少有一个为真时,该方法返回true;当它们都为假时,该方法返回false

就是这个意思

这是否意味着,当a和b中至少有一个为真时,该方法返回true;当它们都为假时,该方法返回false


确切地说,

更准确地说,| |运算符将首先计算左侧的表达式。如果为true,则忽略右侧的表达式,整个| |表达式计算为true。如果左表达式为false,则计算右表达式;如果为真,则整个| |表达式计算为真,否则为假

这种行为定义明确,并非微不足道。这种逻辑扩展适用于C++中的所有逻辑运算符,它允许:
if (p && *p != '\0')

如果这个规则不存在,这是不允许的。

更准确地说,| |运算符将首先计算左侧的表达式。如果为true,则忽略右侧的表达式,整个| |表达式计算为true。如果左表达式为false,则计算右表达式;如果为真,则整个| |表达式计算为真,否则为假

这种行为定义明确,并非微不足道。这种逻辑扩展适用于C++中的所有逻辑运算符,它允许:
if (p && *p != '\0')
如果这个规则不存在,这是不允许的