例:在以下程序中,我将bool改为int ,输出值都一样,用法上具体有何区别?
int main()
{
int year;
bool isleapyear;
cout<<"Enter the year:";
cin>>year;
isleapyear=((year % 4==0 && year % 100 !=0)||(year %400 ==0));
if (isleapyear)
cout<<year<<"is a leap year "<<endl;
else
cout<<year<<"is not a leap year"<<endl;
return 0;
这个无所谓
因为isleapyear=((year % 4==0 && year % 100 !=0)||(year %400 ==0));
返回的就只有两种数值
要么是0 要么是1
所以用bool和int都是可以的
int是整型的,bool是布尔型的,布尔型只有两个值True和False,当你判断是否是润年时,isleapyear的返回值是真假01,所以你这个程序应该不涉及到int和bool的区别,结果一样是正常的
bool是布尔型,是数据类型的一种。它只包含true 和false;0为假,即false;非0为真,即true;
程序中isleapyear恰好也是0或1,所以给你造成了错觉
bool有两种值,真,假
int值为零,则隐式转换为bool后为假,非零,为真