首先bool类型只有一个字节
在c c++ java中,真值有无数种,而假只有0
所以
bool a = -3;
bool b = 20;
bool c = 0;
上面这三种情况的真值分别是 真 真 假
所以只有当变量的值为0时才代表其为假
int a = -3;
int b = 20;
int c = 0;
c = a < b;
printf("%d\n", c);
这个代码中,=的优先级小于<号,所以在比较时,会先交将a和b进行比较后在进行赋值,得到的结果时true,转换为int的类型时结果为1
另外关于我们平时使用bool型变量的注意事相
例如:我们在使用if语句时,需要用bool变量来最为比较条件,那么我们就会有下面几种写法
bool b=flase;
if(1==b)
if(true==b)
if(b)
在上面的三种写法上,首先第一种最不好,因为b时bool变量,而不是整型变量,这么做会混淆变量的类型,而且在不同编译环境中1不一定就是true的代表
而第二种方式中,FLASE 的值大家都知道,在编译器里被定义为 0;但 TRUE 的值呢?都是 1 吗?很不幸,不都是 1。Visual C++定义为 1,而它的同胞兄弟 Visual Basic 就把 TRUE 定义 为-1.那很显然,这种写法也不
在第三种方式种,是最好的方式,因为flase的值必然是0,true的值有很多种,我们使用if(b)和if(!b)的方式可以很好的做到真假的条件判断