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  
 
    微软企业开发技术 | 移动开发(Google Android、Windows Mobile)技术| 嵌入式系统设计与开发 | JAVA开发
                    
                
                
            
        
浙公网安备 33010602011771号