在线报名 | 加入收藏 | 学校地图

电话:400-0379-707 QQ:710034203

首页 > 学习园地 > 技术教程 > 正文阅读

洛阳北大青鸟:关于C语言中没有布尔类型的说明

发布时间:2013-01-05 15:22:15 点击:0
洛阳北大青鸟导读:在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。所以我们通常使用逻辑变量的做法://定义一个int类型变量,当变量值为0时表示false,值为1时表示trueint flag;flag = 0;//……flag ...

 

在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。所以我们通常使用逻辑变量的做法:

//定义一个int类型变量,当变量值为0时表示false,值为1时表示true

int flag;

flag = 0;

//……

flag = 1;

if( flag )

{

//……

}

但这种做法不直观,而且没有明确flag一定是布尔值。所以我们又借助C语言的宏定义:

//宏定义布尔类型

#define BOOL int

#define TRUE 1

#define FALSE 0

//定义一个布尔变量

BOOL flag = FALSE;

这种方法虽然直观,但依然是换汤不换药,变量flag在编译器看来依然是int类型。新版本总会改进一些不好的地方,所以在最新的C语言标准(C99)解决了布尔类型的问题。C99提供了_Bool 型,所以布尔类型可以声明为_Bool flag.

_Bool依然仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1.

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;

}

热词搜索: 洛阳北大青鸟 C语言
分享该网页到:   转播到腾讯微博  分享到QQ空间
  • ①理论课
  • ②上机课
  • ③职业导向训练(COT)
  • ④指导学习课(DLC)
  • ⑤项目案例课
  • ⑥在线培训课(OLTL)
  • ⑦阶段项目课
  • ⑧毕业设计课
人才招聘 | 视频专区 | 专题活动 | 认证查询 | 网站地图