我认为这是一个简单的问题,但我正在努力解决以下问题。在我的示例中,我有以下语句(语言为 C):
int foobar
if (foobar)
{
// do something.
}
现在,如果我对此是正确的,那么当foobar
不为零时,此陈述为真。所以它应该与if (foobar!=0)
.
但是如果foobar
变成负数会怎样?
我认为这是一个简单的问题,但我正在努力解决以下问题。在我的示例中,我有以下语句(语言为 C):
int foobar
if (foobar)
{
// do something.
}
现在,如果我对此是正确的,那么当foobar
不为零时,此陈述为真。所以它应该与if (foobar!=0)
.
但是如果foobar
变成负数会怎样?
消极或积极。任何不是 0 的都是真值if
另外,考虑一个负数:-1
-1 在 C 内部表示为: 0xFFFFFFFF
,在这种情况下,如果我将其转换为无符号整数,它将是一个正数。
但是在 C99 标准编译器出现之后,我建议你
<stdbool.h>
改用它。使猜测工作少了很多:
同样,
if (foobar)
表示 foobar 不为零,因此无论是正数还是负数都无所谓,它仍然不为零
如果 foobar 是负数(它仍然不同于零),您的语句应该返回 true,但您应该避免这种测试,因为以这种方式测试可能具有不同“真”值的变量不是最佳实践。