今天又碰到一个容易让人混淆的问题。就是在C++里,我们int类型直接赋值给bool的变量是0,-1,1,到底哪个是true哪个是false?其他数呢。
实践才是检验真理的唯一标准,下面我在devc++上运行如下代码:
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
bool x=-1;
if(x==true)
printf("true\n");
else
printf("false\n");
x=1;
if(x==true)
printf("true\n");
else
printf("false\n");
x=0;
if(x==true)
printf("true\n");
else
printf("false\n");
x=100;
if(x==true)
printf("true\n");
else
printf("false\n");
return 0;
}
运行结果:
事实证明,只有0才是false,1,-1和其他数都是true。