讲解一下C 语言布尔类型

树叶云

C语言就没有真正的布尔类型,布尔类型实际上是用数值型(int,float,char等)表示的,不能自动打印为true或者false,只能自己写代码实现。

C 语言标准(C89) 没有定义布尔类型,如果你使用 true 和 false,会出现以下错误:

infinite.c:5:12: error: use of undeclared identifier 'true'
   while (true) {

1 error generated.
make: *** [infinite] Error 1

我们可以借助 C 语言的宏定义来哦设置:

//宏定义布尔类型
#define BOOL int#define TRUE 1#define FALSE 0

//定义一个布尔变量
BOOL flag = FALSE;

也可以通过枚举类来定义:

typedef enum
{
   true=1, false=0
}bool;

实例

#include

//计算n!,n的值在main中定义
int main(void)
{
   int n = 10;    //计算叠乘数
   int sum = 1; //用来存放叠乘的结果
   typedef enum
   {
       true=1, false=0
   }bool;
   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;
}

输出结果为:

10的叠乘值为 3628800

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

实例

//导入 stdbool.h 来使用布尔类型
#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;
}

输出结果为:

10的叠乘值为 3628800

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/224019.html<

(0)
运维的头像运维
上一篇2025-04-16 05:53
下一篇 2025-04-16 05:54

相关推荐

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注