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

来源:百度知道 编辑:UC知道 时间:2024/06/20 04:23:28
如题
还有int a;
scanf("%d",&a);
if(!a)
printf("continue");
里面的if语句中的 !a 又等价与什么呢?

新学C 书上没找到解释的~

if()
……;
是逻辑判断语句,如果括号内逻辑值为真,则继续执行下一条语句,否则不执行
计算机默认以“0”代表逻辑假,以“非0值”代表逻辑真

上述程序的意思就是不断从键盘向a赋值,直到赋给a的值为一个非0数
若a非0,则逻辑值为真,“!”表示取反,!a的逻辑值就为假,不执行下一条语句;从逻辑值的角度考虑:
if(a)等价于if(a!=0)
if(!a)等价于if(a==0)

看a的值
如果a=0的话
那么意思就是说条件为假
所以if(!a)就是非0
即真。

C语言中的非零即真,也就是a除非等于0即a==0时为假以外,无论a等于什么都等价于a==1。那么!a真好相反,只有当a==0时为真,其他的无论a等于什么都是假

c中逻辑判断时,非0值即为1

if(a)等价于if(a!=0)
if(!a)等价于if(a==0)