我爱电脑技术论坛's Archiver

白雪公主 发表于 2008-6-12 09:10

C++中布尔类型

布尔类型对象可以被赋予文字值true或者false,所对应的关系就是真与假的概念。 y3utW%Y1F|d

%Rq9QxRv   我们通常使用的方法是利用他来判断条件的真与假,例如下面的代码:#include <[color=maroon]iostream[/color]>  raL.H G!o4m Q
[color=blue]using[/color] [color=blue]namespace[/color] std;  
O[3{Mjt   
t^hf9R3vn|S [color=blue]void[/color] [color=blue]main[/color]([color=blue]void[/color])  
h(e;mt @!kAHv {  UR*Z Uu z
    [color=blue]bool[/color] found [color=red]=[/color] [color=blue]true[/color];  ln r9\`"h/U
    [color=blue]if[/color] (found)  $skg*dyM&A N}
    {  4A/A^;? At!j6Vx
        [color=maroon]cout[/color] << "found条件为真!" << endl;  
pVn:i{'u;A*xq     }  
:M^_#eG   
0ucI~,v }
"fFd:{1zE3t2M2Ho   但是一些概念不清的人却不知道布尔类型的对象也可以被看做是一种整数类型的对象,但是他不能被声明成signed,unsigned,short long,如果你生成(short bool found=false;),那么将会导致编译错误。
2_9`F C`|0p2H'u3G `8y-hxD7lU$z
  其为整数类型的概念是这样的::B EGt)[ N ~.y
  当表达式需要一个算术值的时候,布尔类型对象将被隐式的转换成int类型也就是整形对象, false就是0,true就是1,请看下面的代码!
![:F4L%d fG #include <[color=maroon]iostream[/color]>   Q5aJ;c8qT
#include <[color=maroon]string[/color]>   s9q;?D2K+Y
[color=blue]using[/color] [color=blue]namespace[/color] std;  )pXb kl
  $P5lG"Z)V"R H,`A
[color=blue]void[/color] [color=blue]main[/color]([color=blue]void[/color])  
*Y+O+SI*UE;B {  
$QL(hb-s1}0uJ qL!qb [color=blue]bool[/color] found [color=red]=[/color] [color=blue]true[/color];  
.Lm#nsF$y [color=blue]int[/color] a [color=red]=[/color] 1;  3I+Z)w0pg3A9H n;G?
[color=maroon]cout[/color] << a [color=red]+[/color] found << endl;  I5}3G3{*F u-`P[u`I7N
[color=maroon]cin[/color].get();  
6B.RV#M} }
I$}$c,MbG&q   a+found 这样的表达式样是成立的,输出后的值为2进行了加法运算!
1@E|6G-Ajl?-Z ;O ue)`+K e Wd
  那么说到这里很多人会问指针也可以吗?回答是肯定的这样一个概念对于指针同样也是有效的,下面我们来看一个将整形指针对象当作布尔对象进行使用的例子:
%UC"N7bnl #include <[color=maroon]iostream[/color]>  
I@%[)d'o.KC&HH [color=blue]using[/color] [color=blue]namespace[/color] std;  v9CE6Z/\
  
o,{!hk_,`0z [color=blue]void[/color] [color=blue]main[/color]([color=blue]void[/color])   p#Zs9QB
{  a4a d BJgm;U6{X
    [color=blue]int[/color] a [color=red]=[/color] 1;  ec7n`#BIh@
    [color=blue]int[/color] *pi;  
dlBa i-I`     pi=&a;  S$Ibit,b9q6t6h'fin8`
  
0U:hI!n9rf*O:RX_q     [color=blue]if[/color] (*pi)  \Y`4z%Q%e|b'V
    {  
Chi2RX JH}         [color=maroon]cout[/color] << "*pi为真" << endl;  
+z_#F:Lv9~*P}*C"`#m!{|     }  5v"@C)HiR
    [color=maroon]cin[/color].get();  9f U/c N:m$n8`:L bcL GJ
}
[U |*ce#v   上面代码中的*pi进行了隐式样的布尔类型转换表示为了真也就是true。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.