c语言中有bool类型吗?

在VC++6.0中写上bool后字体显蓝,证明是关键字,也可以正常使用,用来表示开/关.但MS在学习C语言的时候没这中类型教的,标准的C或者C++有这样的类型吗?VC中的... 在VC++6.0中写上bool后字体显蓝,证明是关键字,也可以正常使用,用来表示开/关.但MS在学习C语言的时候没这中类型教的,标准的C或者C++有这样的类型吗?VC中的这种类型占多少内存?是1BIT(1位),一个short(8位),还是一个int(16或32位)?虽然问题有点无聊,但麻烦了... 展开
 我来答
写在枫叶上的故事
2018-12-09
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

C语言里面是没有bool(布尔)类型的,C++里面才有,C语言里面用数值0表示假,非0整数表示真。在C++里面可以使用bool类型。bool类型只有两个值:true =1 、false=0。

bool可用于定义函数类型为布尔型,函数里可以有 return TRUE; return FALSE 之类的语句。

布尔型运算结果常用于条件语句:if (逻辑表达式){如果是 true 执行这里;}else{如果是 false 执行这里;};

扩展资料

Boolean(布尔)数据在C++中使用内置类型bool表示。bool类型的变量只可能有两个值true或false,在现实世界中它用于表示“是”或“否”、“高”或“低”等这种只有两个状态的事物。例如用于表示检测某年是否润年的函数,其返回值类型显示只有两种情况“是”或“否”。 

bool IsLeapYear( const unsigned int year)

{   return (year % 4==0 && year % 100 !=0) || (year %400 ==0);  }

没有统一的布尔类型在大型的工程项中特别是用到第三方程序库时,可能使用不同的手段模拟布尔类型以提交代码的可读性,这样会使得代码有些混乱。C++引入了bool内置类型,解决了代码的一致性问题。

参考资料来源:百度百科——bool

777999666qhw
2010-01-08
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
是你的这个宏#define bool (int) 有问题,(int)issorted;这个语句是不合法的!

//我是在c++编译器上实现的,可能是对的吧,你自己试试:
#include <stdio.h>//c的输入输出使用这个
#include <iostream>//这个是c++ 的 去掉就可以了
#include <time.h>
#include <stdlib.h>//这是c的
#include <conio.h>//这个也是c的getch()函数的头文件

#define bool int
#define true 0x0001
#define false 0x0000

#define maxsize 32767
#define minimum 0
#define maximum 32767

void bubblesort(int k[],int n)
{
int i,j,temp;
bool issorted;
for (i=0;i<n-1;i++) {
issorted = true;
for (j=0;j<n-1-i;j++) {
if (k[j]>k[j+1]) {
temp = k[j];
k[j] = k[j+1];
k[j+1] = temp;
issorted = false;
}
}
if (issorted) break;
}
}

main()
{
int k[maxsize],counter=0,i=0,n;
printf("Please input the nums of data:");
scanf("%d",&n);
srand(time(NULL));
while (counter<=n) {
k[i]=minimum+rand()%(maximum-minimum);
counter++,i++;
}
bubblesort(k,counter);
printf("The sorted data(heapsort):\n");
for (i=1;i<counter;i++) {
printf("%7d",k[i]);
if (i%10==0) printf("\n");
}
getch();
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-07-20
展开全部
我猜测你的疑问是:a的第一个打印为啥是1,b的打印为啥不是1而是扫描值5?

我认为这是c编译器的特点吧,可以这么理解:
首先定义的时候bool一个变量,如果直接赋值是非零,编译器就自动转转为1了(这里是预编译阶段)。所以一开始就是1而不是2。之后有a的2次打印。最后一句判断a是0就不打印的。
然后说b,虽然定义了bool,但是扫描时候是按照int扫描的,内存中真的就是5了(并没有让编译器自动转换为1,因为是代码执行阶段了,不像预编译阶段那样自动转换)。
额外的,如果你给b减1的话,第一次减1结果b就变成1了(可以理解bool值变动时,如果发现大于1了,就减至1)。
以上都是习惯性的理解,没有什么特别的原理。就认为是编译器的动作吧,公理!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
2017-03-29
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

C语言本身没有bool类型

C++中有这个类型

在C中 bool类型 一般用int取代

或者自定义枚举

比如

typedef enum
{
    FALSE,
    TRUE
}bool;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
辉其夫河
2020-03-05
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
C99提供了_Bool布尔类型。是_Bool而不是Bool。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(14)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式