c语言中0与1以及0与非零有区别么

如题所述

没有区别。

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还提供了一个头文件 <stdbool.h> 定义了bool代表_Bool,true代表1,false代表0。只要导入 stdbool.h ,就能非常方便的操作布尔类型了。

举例:

#include <stdbool.h>

#include <stdio.h>

//计算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;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-05

  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。

第2个回答  2014-04-24
C中0表示假,其他任何非0的值都是真。所以可以用1表示真,也可以用别的值。本回答被提问者采纳
第3个回答  2014-04-24
有阿0是错1及非零是对
相似回答