看一下这个C语言小程序的输出结果

其中我不太理解逻辑运算符 !10 是什么意思 ?难道要把 十进制 10转换成 二进制 再看 还是? 可是10 转换成二进制后也会有好几个 1 和0 谁能读懂这个给我解释一下 主要 想知道 !10 怎么理解

第1个回答  2016-07-11
在C语言中,!是 逻辑非运算符,即取反。非0的数字都视为“真”,即1
所以,!10=0
而0<5为真,即是1,所以,最后输出1。追问

说到了重点, 非0的数字都视为“真”

第2个回答  2016-07-11
输出为
!i<j
其中!的优先级更高
于是是
(!i)<j
=(!10)<5
=0<5
为真,输出为1.

程序没有什么问题
如果要输出0 需要 !(i<j)追问

逻辑运算符将任何非零值操作数作为真值来处理。 这么一句话 在树上翻出来了 就 啥都懂了。 谢谢

追答

懂了就好

本回答被提问者和网友采纳
第3个回答  2016-07-11
他是这样的顺序 如果 i < j 为假 !的作用就是取反 假为真 最后的结果是 true(真)

也可以这样理解 ! (i< j)追问

不能这样理解 ,你这不对,逻辑非 是一元运算符 也就是有些人说的 单目运算,优先级和++ -- 一样最高,所以 应该理解成(!i) < j

相似回答