在VC++ 6.0的环境下我的程序用到了 if(!(rd&&wr)) 但是结果是当rd 和wr 互为相反的时候也会进入if 语句。
但是当换成 if((rd&&wr)!=0)结果却如预期,无任何异常。其它地方我们有做任何改动,请各位大侠帮我分析下这个很幼稚但是又很诡异的问题
但是当换成 if((rd&&wr)!=0)结果却如预期,无任何异常。其它地方我们有做任何改动,请各位大侠帮我分析下这个很幼稚但是又很诡异的问题
--------------
rd 和wr 互为相反,rd&wr=0,!(rd&wr)则非零,所以进入if语句。if((rd&&wr)!=0)
-----------------------------------------
rd 和wr 互为相反,rd&wr=0,0!=0 则非假,当然就不进入if语句。
--------------
rd 和wr 互为相反,rd&wr=0,!(rd&wr)则非零;判断条件为真,所以进入if语句。if((rd&&wr)!=0)
-----------------------------------------
rd 和wr 互为相反,rd&wr=0,0!=0 ;判断条件为假,当然就不进入if语句。
我也做了一年软件了。&&和&的区别就像老婆和情人,有个时候会混淆的,不好意思啊