滴水逆向联盟
标题: C语言逻辑运算符和逻辑表达式 [打印本页]
作者: 夺命书生 时间: 2014-11-21 08:45
标题: C语言逻辑运算符和逻辑表达式
一.C语言中的逻辑运算符
1.C语言提供了3中逻辑运算符
&& 与 || 或 !非
2.逻辑运算符中逻辑与逻辑或是双目运算符,逻辑非是单目运算符,唯一运送对象左则。
3. ! && ||
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsFAB.tmp.png 高 低
4.逻辑运算符与赋值运算符,算术运算符,关系运算符之间的优先次序。
! 算术运算符 关系运算符 && || 赋值运算符
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsFAC.tmp.png 高 低
二.逻辑表达式和逻辑表达式的值。
1.由逻辑运算符和逻辑运算对象组成的表达式称为逻辑表达式,
逻辑运算对象可以是C语言中任意合法的表达式。
2.逻辑表达式的结果是 0(假),1(真)
三.逻辑运算的基本规则
1.在逻辑表达式求解中,并不是所有的逻辑运算符都被执行,只是在必须在前一个表达
执行得出结果后,才能确定是否还需要运算,需要则继续,不需要则不运算。
如:a&&b&&c 首先运算 a&&b 如果运算后的结果是 0(假),结果必定是假
&& 运算,只有前后的表达式都成立,都为真时,结果才为真,前 或 后
任意一方为假,结果就必定为假,所以后面的 && 就不必运算了。
例题:求 m 和 n 最后的值?
a=1,b=2,c=3,d=4; m 和 n 的值都为 1 。
表达式: (m=a>b)&&(n=c>d)
首先运算关系运算符: a>b a=1 b=2 显然a不大于b ,结果为:0(假)
然后将结果赋值给 m 之后, 表达式变成了:0&&(n=c>d)
很明显 && 左则已经为假,假与任何运算都为假,所以运算停止了。
最终结果为: m=0 因为 && 右则没有运算没有改变 n 的初值 1
所以 n 的值还是等于 1 。
欢迎光临 滴水逆向联盟 (http://dtdebug.com/) |
Powered by Discuz! X3.2 |