滴水逆向联盟

标题: 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()
A
B
!A
!B
A&&B
A||B
A
B
!A
!B
A&&B
A||B
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0

三.逻辑运算的基本规则

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://www.dtdebug.com/) Powered by Discuz! X3.2