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开发