<分区>
假设我们有一个变量 a:
int a = 0;
可以这样吗
if(!a)
{
// do some stuff
}
代替
if(a == 0)
{
// do some stuff
}
?因为它有效。
在第一个示例中,int 将被转换为 bool,所以可以不使用 static_cast<bool>(a)
吗? ?如果 a
又会发生什么?大于1?
<分区>
假设我们有一个变量 a:
int a = 0;
可以这样吗
if(!a)
{
// do some stuff
}
代替
if(a == 0)
{
// do some stuff
}
?因为它有效。
在第一个示例中,int 将被转换为 bool,所以可以不使用 static_cast<bool>(a)
吗? ?如果 a
又会发生什么?大于1?
最佳答案
In the first example the int will be turned into a bool, so is it okay to do it without
static_cast<bool>(a)
?
是的,没关系。会有隐式转换。
Also what will happen if
a
is bigger than 1?
任何非 0 值都可以隐式转换为 true
.相反,只有值 0 将被视为 false
.
你应该选择哪种方式?两者都可以。我喜欢用我的代码表达我的意图。如果我只想在 a
时运行 if 语句等于 0 我更喜欢
if (a == 0)
因为这正是我想要的。
关于c++ - 是 "!"而不是 "== 0"来检查 int 是否为 0 好习惯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37051093/