没有区别。
C语言判断真假时,以0为假,非0为真,即1也是表示真。
通常使用逻辑变量的做法:
定义一个int类型变量,当变量值为0时表示false,值为1时表示true。
int flag;
flag = 0;
......
flag = 1;
if( flag ){......}
扩展资料:
C99提供了_Bool 型,所以布尔类型可以声明为 _Bool flag。
_Bool依然仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1。
C99还提供了一个头文件
举例:
#include
#include
//计算n!,n的值在main中定义
int main(void){
int n = 10; //计算叠乘数
int sum = 1; //用来存放叠乘的结果
bool flag = false; //叠乘标记
int num = n; //循环次数
while( !flag ){
sum = sum * (num--);
//当num=1时结束循环
if( num == 1){
flag = true;
}
}
printf ("%d的叠乘值为 %d \n", n, sum);
return 0;
}
c语言中0与1以及0与非零没有区别
C中逻辑运算的结果只有两种:真 与 假, 假用数值表示为0,非0表示为真,一般会用1来表示。
C语言中提供了三种逻辑运算符:
&&(与运算)
||(或运算)
!(非运算)
其求值规则如下:
1) 与运算(&&)
参与运算的两个量都为真时,结果才为真,否则为假。例如:
5>0 && 4>2
由于5>0为真,4>2也为真,相与的结果也为真。
2) 或运算(||)
参与运算的两个量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:
5>0||5>8
由于5>0为真,相或的结果也就为真。
3) 非运算(!)
参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:
!(5>0)
的结果为假。
虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0 ”代表“假”。但反过来在判断一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如: 5和3均为非“0”值,因此5&&3的值为“真”,即为1。
又如: 5||0的值为“真”,即为1。
C中0表示假,其他任何非0的值都是真。所以可以用1表示真,也可以用别的值。
有阿0是错1及非零是对