!(a*b)什么意思

!(ab)什么意思,刚开始学C语言
原题是!(a
b)&& a+b
请求解释一下,详细一点

1.在c语言中,各种值类型之间可以隐式互相转换
2.!代表取反,true变false,false变true
3.两个int型的变量相乘,结果也是int型
4.当给一个int型变量取反,会先隐式的转换成bool型,再执行取反
5.int型转bool型,0代表false,非0代表true
那么!(a*b),当a*b的结果是0时,表达式为真,非0时,表达式为假。也就是说,a和b中其中一个是0表达式为真。

!(a * b)就是判断a和b中至少有一个为0

!与&&,||一样是逻辑运算符,!意思就是"非",非真即假,如!true,结果是false,!false结果是true。
注意,对于数字,0视为假,其它非0数视为真