c语言中逻辑运算符和逻辑表达式只是定总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

逻辑运算符和逻辑表达式

(一)逻辑运算符及其优先次序

1.&& (逻辑与) 相当于其他语言中的AND

2.|| (逻辑或) 相当于其他语言中的OR

3.! (逻辑非) 相当于其他语言中的NOT

例:a&&b 若a,b为真,则a&&b为真。

a||b 若a,b之一为真,则a||b为真。

!a 若a为真,则!a为假。

优先次序:

•逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算术运算符

•逻辑非>算数运算符>关系运算符>&&和||>赋值运算符>逗号运算符(二)逻辑表达式

•用逻辑运算符将关系表达式或逻辑量连接起来的式子就

是逻辑表达式

•逻辑表达式的值应该是一个逻辑量“真”或“假”。

任何非零的数值都被认作“真”

例:设a=4,b=5:

!a的值为0 a&&b的值为1

a||b的值为1 !a||b的值为1

4&&0||2的值为1

例:5>3&&8<4-!0 (从左向右运算)

表达式值为0

1)!0=1 2)4-1=3 3)5>3值为1 8<3值为0

4)1&&0值为0

(三)短路现象

在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。

(1)a&&b&&c 只有a为真时,才需要判断b的值,只有a和b都为真时,才需要判断c的值。

(2)a||b||c 只要a为真,就不必判断b和c的值,只有a为假,才判断b。a和b都为假才判断c

例:int m=10,n=12,a=1,b=3,c=14,d=7,i,j;

<1>i=(m=a>b)&&(n=c>d); printf(“%d,%d\n”,m,n); /*输出值:0,12 */

j=(m=a>b)||(n=c>d); printf(“%d,%d\n”,m,n);

/*输出值:1,12 */

printf(“%d,%d\n”,i,j);

输出值:0,1

<2>i=(m=ad); printf(“%d,%d\n”,m,n);

/*输出值:1,1 */

j=(m=ad); printf(“%d,%d\n”,m,n);

/*输出值:1,1 (应该输出的为上一步的n为1,不等于12) */

printf(“%d,%d\n”,i,j);

输出值:1,1

相关文档
最新文档