C++中布尔类型
布尔类型对象可以被赋予文字值true或者false,所对应的关系就是真与假的概念。 y3ut W%Y1F|d我们通常使用的方法是利用他来判断条件的真与假,例如下面的代码:#include <[color=maroon]iostream[/color]> raL.H G!o4mQ
[color=blue]using[/color] [color=blue]namespace[/color] std;
[color=blue]void[/color] [color=blue]main[/color]([color=blue]void[/color])
{ UR*Z Uuz
[color=blue]bool[/color] found [color=red]=[/color] [color=blue]true[/color]; ln r9\ `"h/U
[color=blue]if[/color] (found) $skg*dyM&AN}
{ 4A/A^;?At!j6Vx
[color=maroon]cout[/color] << "found条件为真!" << endl;
}
}
但是一些概念不清的人却不知道布尔类型的对象也可以被看做是一种整数类型的对象,但是他不能被声明成signed,unsigned,short long,如果你生成(short bool found=false;),那么将会导致编译错误。
`8y-hxD7lU$z
其为整数类型的概念是这样的::B EGt)[N ~.y
当表达式需要一个算术值的时候,布尔类型对象将被隐式的转换成int类型也就是整形对象, false就是0,true就是1,请看下面的代码!
#include <[color=maroon]iostream[/color]> Q5aJ;c8qT
#include <[color=maroon]string[/color]> s9q;?D2K+Y
[color=blue]using[/color] [color=blue]namespace[/color] std; )pXbk l
$P5lG"Z)V"R H,`A
[color=blue]void[/color] [color=blue]main[/color]([color=blue]void[/color])
{
[color=blue]bool[/color] found [color=red]=[/color] [color=blue]true[/color];
[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();
}
a+found 这样的表达式样是成立的,输出后的值为2进行了加法运算!
;O ue)`+Ke Wd
那么说到这里很多人会问指针也可以吗?回答是肯定的这样一个概念对于指针同样也是有效的,下面我们来看一个将整形指针对象当作布尔对象进行使用的例子:
#include <[color=maroon]iostream[/color]>
[color=blue]using[/color] [color=blue]namespace[/color] std; v9CE6Z/\
[color=blue]void[/color] [color=blue]main[/color]([color=blue]void[/color]) p#Z s9QB
{ a4a d BJgm;U6{X
[color=blue]int[/color] a [color=red]=[/color] 1; ec7n`#BIh@
[color=blue]int[/color] *pi;
pi=&a;