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,计算停止。