讲解一下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

分享题目:讲解一下C语言布尔类型
标题网址:http://www.gawzjz.com/qtweb2/news38/24438.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联