C语言的非运算符“!”怎么使用?

书上的解释是表示相反,有一个例题:a=16,b=5 那么!(b==a/3)这个表达是的值为真还是为假?我的理解是b==a/3是为假的,所以!(b==a/3)就为真,但是为什么不对呢?

如果a是整型的话,那么a/3得到的结果也是整型即5,这样b==5的结果就是true,!(b==a/3)为false。
如果a是浮点型的话,那么结果就是相反的了,a/3=5.333333,最终的结果是true。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-01-15
那么,是因为a是int型数,所以a/3是5,舍去小数部分;你应该是这里想错了
第2个回答  2015-01-15
表达式的结果为:假
(b==a/3)的意思是”判断b==a/3是否成立“ 结果:TRUE
那么!(b==a/3)相当于(not true) 结果:FALSE
第3个回答  2015-01-15
a/3=16/3=5
5==5 为真

整数/整数 = 整数
1/2=0
1.0/2=0.5本回答被网友采纳
第4个回答  2015-01-15
a/3=5 b==5
相似回答