C语言中!a怎么理解

#include<stdio.h>
void main()
{ int a=4;
int b=5;
int x=2;
int y=1;
printf("%d\n",(a>b)&&(x>y));
printf("%d\n",(a>b)||(x>y));
printf("%d\n",!a);
} 今天一个学C的新手叫我讲解这段码 - -
看到那个!a我也迷糊了- -
难道是说输出的值不等于a 则 为假 输出0么?

第1个回答  2010-08-27
!a是一个逻辑表达式,如果a==0,则!a结果为true(即为1),如果a!=0,则!a结果为flase(即为0)
第2个回答  2010-08-27
非a,即a为0,!a为1;a不为0,!a为0.

因此上面程序输出结果是:
0
1
0本回答被提问者采纳
第3个回答  2010-08-27
!a对a取非运算
若果a是非零的任何数,或者字符,!a=0;
如果a==0,那么!a=1
第4个回答  2010-08-27
!a对a取非运算