确切地说,C语言判断中if(x==0)和if(!x)有什么本质上的区别吗?
答案:1 悬赏:60 手机版
解决时间 2021-08-23 09:50
- 提问者网友:欺烟
- 2021-08-22 22:19
确切地说,C语言判断中if(x==0)和if(!x)有什么本质上的区别吗?
最佳答案
- 五星知识达人网友:由着我着迷
- 2021-08-22 23:57
两者区别不大,“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别忘记给分!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯