C语言中!是逻辑运算符,叫作逻辑非。
什么是逻辑运算--逻辑运算用来判断一件事情是“对”的还是“错”的,或者说是“成立”还是“不成立”,判断的结果是二值的,即没有“可能是”或者“可能不是”,这个“可能”的用法是一个模糊概念,在计算机里面进行的是二进制运算,逻辑判断的结果只有二个值,称这二个值为“逻辑值”,用数的符号表示就是“1”和“0”。其中“1”表示该逻辑运算的结果是“成立”的,如果一个逻辑运算式的结果为“0”,那么这个逻辑运算式表达的内容“不成立“
逻辑非的作用是表达式取反:
1.如果表达式是真,逻辑非取值后就变成假。比如表达是int a=0xfffff; if(a)=if(1) ,在上面的计算中无论a取多大值,对于if(a)来说只有一个值就是if(1);if(!a)=if(0),换算可以得到!a=0;
2. 如果表达式是假,逻辑非取值后就变成真。比如表达是int a=0; if(a)=if(0);if(!a)=if(1);
所以在C语言的逻辑计算过程中:!!(a)=!(!a),假设(a)=1,!(a)=!(1)=0,!!(a)=!(0)=0;