确切地说,C语言判断中if(x==0)和if(!x)有什么本质上的区别吗?
来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/05 02:38:33
确切地说,C语言判断中if(x==0)和if(!x)有什么本质上的区别吗?
![确切地说,C语言判断中if(x==0)和if(!x)有什么本质上的区别吗?](/uploads/image/z/4039983-63-3.jpg?t=%E7%A1%AE%E5%88%87%E5%9C%B0%E8%AF%B4%2CC%E8%AF%AD%E8%A8%80%E5%88%A4%E6%96%AD%E4%B8%ADif%28x%3D%3D0%29%E5%92%8Cif%28%21x%29%E6%9C%89%E4%BB%80%E4%B9%88%E6%9C%AC%E8%B4%A8%E4%B8%8A%E7%9A%84%E5%8C%BA%E5%88%AB%E5%90%97%3F)
两者区别不大,“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)吗?