首页 理论教育C语言逻辑运算符-C语言程序设计基础

C语言逻辑运算符-C语言程序设计基础

【摘要】:C语言中逻辑运算符及其含义见表3.2。表3.2逻辑运算符及其含义逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”表3.3逻辑运算真值表C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:·对逻辑表达式从左到右进行求解。

关系运算只能描述简单的条件,程序中描述复杂条件需要逻辑运算。C语言中逻辑运算符及其含义见表3.2。

表3.2 逻辑运算符及其含义

逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”是单目运算符,具有右结合性。

用逻辑运算符将运算对象连接起来的表达式称为逻辑表达式,在C语言中,构成逻辑运算的数据对象除了关系表达式外,还可以是任意的其他表达式。对其他表达式而言,非0值以逻辑“真(即1)”参加逻辑运算,0值以逻辑“假”参加逻辑运算。逻辑表达式的运算结果是一个逻辑值(即0或者1)。逻辑运算的规则可以用“真值表”描述,两个数据对象之间的逻辑运算规则见表3.3。

表3.3 逻辑运算真值表

C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:

·对逻辑表达式从左到右进行求解。

·短路原则:在逻辑表达式的求解过程中,任何时候只要逻辑表达式的值已经可以确定,则求解过程不再进行,求解结束。

具体理解逻辑表达式运算规则时,可以采用这样的步骤:

①找到表达式中优先级最低的逻辑运算符,以这些运算符为准将整个逻辑表达式分为几个计算部分。

②从最左边一个计算部分开始,按照算术运算、关系运算和逻辑运算的规则计算该部分的值。每计算完一个部分就与该部分右边紧靠着的逻辑运算符根据真值表进行逻辑值判断。

③如果已经能够判断出整个逻辑表达式的值则停止其后的所有计算;只有当整个逻辑表达式的值还不能确定的情况下才进行下一个计算部分的计算。(www.chuimin.cn)

例如,有定义:int a=1,b=2,c=0;,则对逻辑表达式a++||b++&&c++的计算过程为:

①最低优先级的逻辑运算符||将逻辑表达式分成了两个部分a++和b++&&c++;

②计算第一个计算部分a++得到该部分的值为1(变量a自增为2);

③用a++计算部分得到的结果1与其右边的逻辑或运算符根据逻辑运算真值表进行逻辑值判断,得出整个逻辑表达式的结果为1。由于已知整个逻辑表达式的结果,停止该逻辑表达式的运算(即b++&&c++没有进行任何运算)。

根据上面的计算过程得到结果为:逻辑表达式的值为1、变量a的值为2、变量b的值为2(原值)、变量c的值为0(原值)。

【例3.1】 逻辑表达式运算规则示例。

在C程序设计中,常用逻辑与运算表示某个数据对象的值是否在给定的范围之内,用逻辑或运算表示某个数据对象的值是否在给定的范围之外。例如,若要表示变量x的值在区间[a,b]之内时条件为真,则可使用逻辑表达式x>=a&&x<=b来表示;若要表示变量x的值在区间[a,b)之外时条件为真,则可使用逻辑表达式x<a||x>=b表示。