C语言中if(a)等价与啥

2025-05-18 20:36:23
推荐回答(1个)
回答(1):

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)

合理使用优先级可以极大简化表达式。