C逻辑运算符

逻辑运算符执行逻辑与 () 和逻辑或 ( || ) 运算。

语法

  • 逻辑和表达式:
    包含或表达式

    逻辑和表达式包含或 表达式

  • 逻辑或表达式:
    逻辑和表达式

    表达式。 || 逻辑和表达式

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

C 逻辑运算符下述:

运算符

说明

&&

例如,如果两个操作数具有非零值,逻辑与运算符生成值 1。 如果其中一个操作数是等于 0,则结果是 0。 只要逻辑与运算第一个操作数是等于 0,第二个操作数对象不会计算。

||

逻辑或运算符对其操作数的包含或 " 运算。 例如,如果两个操作数具有值 0,则结果是 0。 如果其中一个操作数具有非零值,则结果是 1。 如果中出现第一个操作数具有非零值,第二个操作数对象不会计算。

操作数的逻辑和和逻辑或表达式从左到右进行计算。 如果第一个操作数的值足以确定操作的结果,第二个操作数对象不会计算。 这称为 “短路计算”。具有顺序在第一个操作数以后。 请参见 序列点 有关更多信息。

示例

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

int w, x, y, z;

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

在此示例中, printf 函数调用输出消息,如果 x 比 y 小于,并 y 比 z更少。 如果 x 比 y大,第二个操作数对象 (y < z) 不会计算和 nothing 打印。 请注意这会导致出现问题,在第二个操作数对象支持某些其他原因取决于的副作用的情况下。

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

在此示例中,则为; x 与 w、 y或 z相等,则为 printf 函数的第二个参数的计算结果为 true,值 1 打印。 否则,它计算结果为 false,值 0 打印。 在一个条件计算结果为 true,计算停止。

请参见

参考

逻辑"与"运算符:&&

逻辑或运算符:||