相关文章推荐
行走的吐司  ·  python del()函数与numpy ...·  1 年前    · 
温文尔雅的烤面包  ·  @Override public ...·  1 年前    · 
欢快的拐杖  ·  C# ...·  2 年前    · 

logical-AND-expression :
inclusive-OR-expression
logical-AND-expression && inclusive-OR-expression

logical-OR-expression :
logical-AND-expression
logical-OR-expression || logical-AND-expression

逻辑运算符不执行常用算术转换。 相反,它们根据其等效性为 0 计算每个操作数。 逻辑运算的结果不是 0 就是 1。 结果的类型为 int

C 逻辑运算符如下所述:

逻辑“与”和逻辑“或”表达式的操作数从左到右进行计算。 如果第一个操作数的值足以确定运算的结果,则不会计算第二个操作数。 此效应称为“短路”计算。 在表达式的第一个操作数之后有一个序列点。 有关详细信息,请参阅 序列点

下面的示例演示了逻辑运算符:

int w, x, y, z;
if ( x < y && y < z )
    printf( "x is less than z\n" );

在此示例中,如果 x 小于 y,且 y 小于 z,则调用 printf 函数以输出消息。 如果 x 大于 y,则不会计算第二个操作数 (y < z) 且不会输出任何内容。 这是在编写逻辑比较时必须考虑的另一种短路计算情况。 否则,如果代码依赖于计算第二个操作数的意外结果,则它可能会导致问题。

printf( "%d" , (x == w || x == y || x == z) );

在此示例中,如果 xwyz 相等,则 printf 函数的第二个参数的计算结果将为 true,并输出值 1。 否则,它的计算结果将为 false,并打印值 0。 只要其中一个条件的计算结果为 true,计算便会停止。

  • 逻辑与运算符:&&
  • 逻辑或运算符:||
  •