确切地说,C语言判断中if(x==0)和if(!x)有什么本质上的区别吗?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/24 17:16:18
确切地说,C语言判断中if(x==0)和if(!x)有什么本质上的区别吗?
两者区别不大,“x==0”是个判断语句,很显然,“x==0”成立,这个语句就为真,结果为true;
而“!x”呢,如果“x==0”,那么“!x”就为真,结果为true,反之,这位假,就是false(!x为0);所以,两者都是x为0则判断为真,没什么本质区别的,如果lz非要区别的话,可以这样认为,“x==0”是直接将x与0比较的,真假立判;而“!x”先判断x是否为0,那么就可以得出(!x)是否为0,可以这样分if(x==0) 则((!x)!=0) return true;if(x!=0) 则((!x)==0) return false;这里其实就是boolean与int的一点联系,lz知道,false与0等同,true与1等同,而在二进制内存中,false是全0的,不全0就是true,这就是!x(x是非boolean型吧)可以作为判断(即结果是boolean型)的原因了.
解释这么多,希望对lz有帮助,
lz别忘记给分!
而“!x”呢,如果“x==0”,那么“!x”就为真,结果为true,反之,这位假,就是false(!x为0);所以,两者都是x为0则判断为真,没什么本质区别的,如果lz非要区别的话,可以这样认为,“x==0”是直接将x与0比较的,真假立判;而“!x”先判断x是否为0,那么就可以得出(!x)是否为0,可以这样分if(x==0) 则((!x)!=0) return true;if(x!=0) 则((!x)==0) return false;这里其实就是boolean与int的一点联系,lz知道,false与0等同,true与1等同,而在二进制内存中,false是全0的,不全0就是true,这就是!x(x是非boolean型吧)可以作为判断(即结果是boolean型)的原因了.
解释这么多,希望对lz有帮助,
lz别忘记给分!
确切地说,C语言判断中if(x==0)和if(!x)有什么本质上的区别吗?
在C语言中if(x=0)与if(x==0)的区别 if(0
C语言 if(x==0) if (x=0) 有什么不同
C语言求助:if(x/=0)是在判断什么?
C语言中,If(a==b)和if(a=b)什么区别?
C语言中 if(x
C语言中if(x
lingo 语言中有没有判断语句,比如:C里面 if(x>1)就执行d=1;之类的判断语句,
C语言问题:if(a%2)与if(a%2==0)有什么区别?
C语言中if(!x)和if(x) 的等价结构是什么
C语言中,if(++x%2==0)什么意思?
在c语言里,if (x)等价于if (x!=0)、if x)等价于if (x==0)吗?