博客搬家了,最近同时更新,没准什么时候就完全搬走了-_-
http://blog.just666.cn 这个是新博客地址,希望大家多多关照
最近在网上看到有一些说法说C语言里是没有bool类型的,但是我记得有一本书(《C Primer Plus》)里有过关于C语言bool类型的介绍,所以就翻了翻书,确定了C语言里的bool类型的确存在。下面介绍一下C语言中的bool类型。
C语言是用C99标准开始添加了bool类型。bool类型是以英国数学家George Boole的名字命名的,他开发了用代数表示并解决逻辑问题的系统。在C语言中我们用_Bool来定义bool类型的变量。
#include <stdio.h>
int main ()
{
_Bool test;
test = (1 == 3);
return 0;
}
上面就定义了一个名为test的_Bool类型变量,并且把(1 == 3)这个表达式的值赋值给test。_Bool类型的值只有0和1。在C语言中,任何非0的值都为真,这一点我们可以通过如下代码判断。
#include <stdio.h>
int main ()
{
_Bool test;
int i;
for (i = -10; i< 10; i++)
{
test = i;
if (test)
printf ("true\n");
else
printf ("false\n");
}
return 0;
}
上面这段代码最后结果就只有i为1的0的时候,赋值给test,test才表达为真。
最后我们来看一下C语言中的_Bool类型是不是真的也只占用一个二进制位的内存空间。
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int myint;
_Bool mybool;
int memint;
int membool;
memint = sizeof(myint);
membool = sizeof(mybool);
printf ("int = %d\n", memint);
printf ("_Bool = %d\n", membool);
return 0;
}