漫步云端

移动开发(Android、iPhone、Windows Mobile) | JAVA | C | C++ | .net | Objective C | 微软企业开发技术 | 嵌入式系统设计与开发
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C++ 的布尔类型

Posted on 2010-12-10 22:46  charley_yang  阅读(8091)  评论(0编辑  收藏  举报

1.

当表达式需要一个算术值时 布尔对象(如 found)和布尔文字都被隐式地提升成 int(正 如下面的例子) false 变成 0 而 true变成 1 例如  

bool found = false;
int occurrence_count = 0;
 
while ( /* 条件省略  */ )
{
   found = look_for( /* 内容省略 */ );
   
// found 的值被提升为 0 或者 1
   occurrence_count += found;
}


 

2.

正如文字false 和 true能自动转换成整数值 0 和 1 一样 如果有必要 算术值和指针值也 能隐式地被转换成布尔类型的值 0或空指针被转换成 false 所有其他的值都被转换成 true  例如 
 
// 返回出现次数
extern int find( const string& );
bool found = false;
if ( found = find( "rosebud" ))
     // ok: found == true
 
 
// 如找到返回该项的指针
extern int* find( int value ); 
if ( found = find( 1024 ))
     // ok: found == true