布尔型是一种基本数据类型,它在 C++ 中可以直接使用,但在 C 语言中应添加<stdbool.h>头文件才可以使用。
布尔型,即bool,它的取值只能是true(真)或者false(假),分别代表非零与零。
对布尔型的赋值可以直接用true或者false进行赋值,也可以用整型常量对其进行赋值,只不过整型常量赋值给布尔型变量会自动转换为true或者false。
对于理解true或者false,true就是(非零,在计算机中存储时以1存储),false就是(零,计算机内以0存储)。
让我们来看下面几个具体的例子。
#include <stdio.h>
main()
{
bool a;
a=5;
printf("%d",a);
}
运行结果:
1
从中我们看到,就算我们把 整型常量5 赋值给 bool型变量a,a的值以%d输出的话仍然为1,因为整型常量会自动转换成true或者false,这里,5作为非零,故转换为true。
#include <stdio.h>
main()
{
bool a;
printf("%d",sizeof(a));
}
运行结果:
1
从这个例子中我们看到,布尔型数据只占据一个字节的大小,故在一些需要节省内存空间的地方可以考虑使用布尔型。
#include <stdio.h>
main()
{
int a=false;
printf("%d",a);
}
运行结果:
0
从这个例子中我们看到,true或者false实际上就是1和0,当以%d形式输出时它会返回1或者0。
定义布尔型函数
我们可以定义一个布尔型函数,它会根据条件返回true或者false,这在一些需要处理很多单调情况的实例中常常用到。
看下面的例子。
#include <stdio.h>
bool Fx(int a,int b)
{
return a>b?true:false;
}
main()
{
int x,y;
printf("x=");
scanf("%d",&x);
printf("y=");
scanf("%d",&y);
if(Fx(x,y)==1)
printf("x>y");
else
printf("x<y");
}
运行结果:
x=5
y=6
x<y