C语言中if后面的!有什么用

#include <stdio.h>

int main()

{

int x;

printf("输入一个数");

scanf("%d",&x);

if(!x==0)

{

printf("x不等于0");

}

else

printf("x等于0");

return 0;

}
如果把0改成3或2,包括把printf后面的也改成3或2,然后怎么输入都无法输出x不等于0这句话,但是改成0就可以正常输入输出,这个!到底有什么用

第1个回答  2014-06-20
!表示对布尔值取反,!true==false,!false==true,任何非0的值都相当于true,0相当于false。
所以!0==true不等于0,!2==false等于零,!3==false等于0。你能看懂马?追问

能看懂,最大问题就是,如果把x后面的0如果改成别的数,为什么就无法为假呢?比如说把所有0都改成3,那么无论输入3还是2都不执行if下面的printf,为什么?

第2个回答  2014-06-20
!就是取反,!x就是当x不等于0时,!x结果就等于0,所以!x==0就为真。
另外,!x==0和x!=0等价,也和x等价。
第3个回答  2014-06-20
!表示逻辑否
if(!x==0) 表示当x为0时x==0为真,再经过逻辑否,则if的条件为假

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网