C语言编译系统在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”。 比如:a、b的值分别是0、4,则a||b的值为1,a&&b的值为0。
但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。比如:a=4,因为a的值为非0,被认作“真”,所以对它进行“非”运算!a=0 。
其实语句是否执行由用户的代码(即判断条件)决定的,而系统只用0和非0进行判断,当用户认为此句可执行,系统判断为“真”,反之亦然 。
比如:while(ch!='#'){语句序列;}
ch!='#'为判断条件
假如ch='A',这可执行大括号中语句序列(系统判断为“真”)
当ch='#',不可执行大括号中的语句序列(系统判断为“假”)
扩展资料:
在c语言中,任何等于零的东西都被认为是假,任何等于非零值的东西都被认为是真,因此,最常见的定义就是假为0,真为1。
在缺省情况下,枚举类型的第一个元素被赋值为O,因此,在上述枚举定义中,FALSE被赋值为0,TRUE被赋值为1。
在C语言中非0的数代表逻辑值“真”,一般用用数字1表示(也可以用其他值),0表示逻辑值“假”,只能用数字0表示。
在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。
最新的C语言标准(C99)解决了布尔类型的问题。C99提供了_Bool 型,所以布尔类型可以声明为 _Bool flag。_Bool依然仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1。
C99还提供了一个头文件 <stdbool.h>定义了bool代表_Bool,true代表1,false代表0。只要导入 stdbool.h ,就能非常方便的操作布尔类型了。
例如:bool flag = false
扩展资料
1、逻辑真和假按位与进行"与"运算。运算规则:
0&0=0
0&1=0
1&0=0
1&1=1
2、逻辑真和假按位进行"或"运算。运算规则:
0|0=0
0|1=1
1|0=1
1|1=1