if(a)和if(a!=0)等价。if(!a)和if(a==0)等价
if()……;是逻辑判断语句,如果括号内逻辑值为真,则继续执行下一条语句,否则不执行,计算机默认以“0”代表逻辑假,以“非0值”代表逻辑真。
上述程序的意思就是不断从键盘向a赋值,直到赋给a的值为一个非0数,若a非0,则逻辑值为真,“!”表示取反,!a的逻辑值就为假,不执行下一条语句;从逻辑值的角度考虑:
if(a)等价于if(a!=0)
if(!a)等价于if(a==0)
扩展资料
C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。
相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。
而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c)
合理使用优先级可以极大简化表达式。