首页 理论教育C语言程序设计:逻辑运算符及表达式

C语言程序设计:逻辑运算符及表达式

【摘要】:逻辑运算符中的“ & & ”和“||”的优质级低于关系运算符,而“!”的优质级高于算术运算符。C语言编译系统在给出逻辑运算结果时,以数值“1”代表“真”,以“0”代表“假”。在逻辑表达式求解中,并不是所有的逻辑运算符都执行。图2.4逻辑运算符的优先级

1.逻辑运算

C语言提供3种逻辑运算符:& & (逻辑与)、||(逻辑或)、!(逻辑非)。

逻辑运算结果值的计算规则如下:

a & & b:若a,b都为真,则结果为真;

a||b:若a为真或者b为真,则结果为真;

!a:若a为真,则结果为假;若a为假,则结果为真。

注意:& & (逻辑与)和||(逻辑或)是双目(元)运算符,即要求有两个运算量,如(a>b) & & (c<d),(a>b)||(x>y)。!(逻辑非)是单目(元)运算符,即只要求有一个运算量,如!(a>b)。

2.逻辑运算符的优先级

逻辑运算符使用的优先次序为:!→ & & →||。即逻辑非的优先级最高(见图2.4)。(www.chuimin.cn)

逻辑运算符中的“ & & ”和“||”的优质级低于关系运算符,而“!”的优质级高于算术运算符。例如,(a>b) & & (x>y)可写成a>b & & x>y,(!a)<(x+y)可写成!a<x+y。

3.逻辑运算符的表达式

用逻辑运算符将关系表达式或逻辑量连接起来的式子称为逻辑表达式。逻辑表达式的逻辑值是一个逻辑值,即“真”或者“假”。C语言编译系统在给出逻辑运算结果时,以数值“1”代表“真”,以“0”代表“假”。但是,在判断一个数据是否为“真”时:如果其值为0,则判定为“假”,如果其值为非0,则判定为真。例如:

若a=2,则!a的值为0。因为a的值为非0,为“真”,再对它进行“非”运算,就为“假”,用0代表。

若a=2,b=3,则a & & b的值为1,因为a,b的值都为“真”,所以结果为真,即1。!a||b的值也为真。

在逻辑表达式求解中,并不是所有的逻辑运算符都执行。例如:a & & b & & c,如果a的结果为假,那么直接得出结果为假,根本不会再执行b和c,只有在a,b均为真的情况下才会执行c。同样,a||b||c,如果a为真,直接得出结果为真,不会再执行b和c,只有a,b均为假的时候才执行c。

图2.4 逻辑运算符的优先级