在C语言中,“!”是逻辑非的运算符。
“!5”是逻辑运算表达式。它是对后面的逻辑值取“反”运算。如:后面是真,则进行非运算后的值是假。
在C语言中,任何非0数字都解释为逻辑真,所以,数字5的逻辑值是真。
这样,“!5”的运算就是“非真”,结果当然就是“假”了。
在C语言中,规定用“1”代表逻辑真,用“0”代表逻辑假。所以,“!5”的值——逻辑假——就用“0”代表了。
是故,“!5”在C语言中的意思是“逻辑假”,它的值为0。
C语言运算符列表:
1、优先级1级
结合方向左结合(自左至右)
()圆括号
[]下标运算符
->指向结构体成员运算符
.结构体成员运算符(请注意它是一个实心圆点)
2、优先级2级
结合方向右结合(自右至左)单目运算符
!逻辑非运算符
~按位取反运算符
++自增运算符
--自减运算符
-负号运算符
(类型)类型转换运算符
*指针运算符
&地址与运算符
sizeof长度运算符
是4,&是按位与的意思,|是按位或的意思。
&的计算规则如下1&1 = 1。
1&0 = 0&1 = 0&0 = 0。
|的计算规则如下1|1 = 1|0 = 0|1 = 1。
0|0 = 0。
5的二进制表示为101, 6的二进制位110。
所以5&6=(100)十进制就是4。
C语言特点:
简洁紧凑、灵活方便。C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。
它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。
运算符丰富,C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。
从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
!是C语言的“逻辑非”操作符,作用是把紧跟在后面的变量或常量的逻辑值变成相反的逻辑值。C语言规定0的逻辑值是0,非0的逻辑值是1。那么!5的意思就是!1(因为5不为0所以逻辑值是1),逻辑1的非就0,所以!5==0。而且,!x只要x的值不是0,!x的结果就是0,而若x的值是0,则!x就是1。