C语言中的逻辑值“真”是用什么表示的,逻辑值“假”是用什么表示的?

Python010

C语言中的逻辑值“真”是用什么表示的,逻辑值“假”是用什么表示的?,第1张

C语言中的逻辑值“真”是用T表示(True,真)

值,逻辑值“假”是用

F(False,假)。

在编程语言中表示

T(True,真)

值和

F(False,假)值的数据类型叫做布尔类型,在

C

语言中通常用

int

类型来表示,非

0

表示

T,0

表示

F。

布尔逻辑是写程序的基本功之一,程序中的很多错误都可以归因于逻辑错误。以下是一些布尔代数的基本定理,为了简洁易读,T

F

1

0

表示,||

+

号表示,x、y、z

的值可能是

0

也可能是

1

扩展资料

常用的逻辑运算符还有

“||”表示“或者”,对于表达式

a||b,“a

或者

b

成立”就为真,也就是说

a

b

只要有任意一个成立,a||b

就为真。

比如,a=5,表达式

a>0

||

a<-1

的结果为真,因为

5>0,即使

5<-1

不成立,整个表达式也为真。还有“!”表示“反”,对于表达式

!a,a

为真时,!a

为假;a为假时,!a

为真。

C语言中的逻辑运算符使用规则如下:

1、逻辑运算符是根据表达式的值来返回真值或是假值。在C语言中没有专门的真值和假值,认定非0为真值,0为假值。

2、逻辑运算符运算规则:|| 或:两个条件中,只要有一个成立,则结果就成立;&&与:两个条件中,两个同时成立,则结果成立,否则不成立;!  非:取反之意,如果是真,结果是假,如果是假,结果是真。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

有以下方式:

1、自己定义的“仿布尔型”

在C99标准被支持之前,一般是由开发人员自己模仿定义布尔型,方式有很多种,常见的有下面两种:

/* 第一种方法 */  

#define TRUE 1  

#define FALSE 0  

  

  

/* 第二种方法 */   

enum bool{false, true}

2、使用_Bool

从C99标准开始,可以简单的使用 _Bool 来定义布尔型变量。_Bool类型长度为1,只能取值范围为0或1。将任意非零值赋值给_Bool类型,都会先转换为1,表示真。将零值赋值给_Bool类型,结果为0,表示假。 下面是一个例子程序:

#include <stdio.h>   

#include <stdlib.h>    

  

int main(){  

    _Bool a = 1  

    _Bool b = 2    /* 使用非零值,b的值为1 */   

    _Bool c = 0  

    _Bool d = -1   /* 使用非零值,d的值为1 */   

      

    printf("a==%d,  /n", a)  

    printf("b==%d,  /n", b)  

    printf("c==%d,  /n", c)  

    printf("d==%d,  /n", d)  

  

    printf("sizeof(_Bool) == %d  /n", sizeof(_Bool))  

      

    system("pause")  

    return EXIT_SUCCESS  

}

3. 使用stdbool.h

在C++中,通过bool来定义布尔变量,通过true和false对布尔变量进行赋值。C99为了让我们能够写出与C++兼容的代码,添加了一个头文件<stdbool.h>。在gcc中,这个头文件的源码如下:(注,为了清楚,不重要的注释部分已经省略):

/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. 

        This file is part of GCC. 

 */  

  

#ifndef _STDBOOL_H  

#define _STDBOOL_H  

  

#ifndef __cplusplus  

  

#define bool    _Bool  

#define true    1  

#define false   0  

  

#else /* __cplusplus ,应用于C++里,这里不用处理它*/  

  

/* Supporting <stdbool.h> in C++ is a GCC extension.  */  

#define _Bool   bool  

#define bool    bool  

#define false   false  

#define true    true  

  

#endif /* __cplusplus */  

  

/* Signal that all the definitions are present.  */  

#define __bool_true_false_are_defined   1  

  

#endif  /* stdbool.h */

可见,stdbool.h中定义了4个宏,bool、true、false、__bool_true_false_are_defined。 其中bool就是 _Bool类型,true和false的值为1和0,__bool_true_false_are_defined的值为1。下面是一个例子程序:

#include <stdio.h>   

#include <stdlib.h>   

#include <stdbool.h>  

  

/* 测试C99新添加的头文件 stdbool.h */  

  

int main(){  

    bool m = true  

    bool n = false  

    printf("m==%d,  n==%d  /n", m, n)  

      

    printf("sizeof(_Bool) == %d  /n", sizeof(_Bool))  

  

    system("pause")  

    return EXIT_SUCCESS  

}