c - if 语句整数



我认为这是一个简单的问题,但我正在努力解决以下问题。在我的示例中,我有以下语句(语言为 C):

int foobar
if (foobar)
{
// do something.
}

现在,如果我是正确的,那么当foobar不为零时,这种说法是正确的。所以它应该与if (foobar!=0)大致相同。

但是,如果foobar变成负数会发生什么?

负数或正数。任何不是 0 的东西都是if的真实值

另外,考虑一个负数:-1

C 中的 -1 在内部表示为: 0xFFFFFFFF ,在这种情况下,如果我将其转换为无符号整数,它将是一个正数。

但是在C99标准编译器出现之后,我建议你用 <stdbool.h>相反。使猜测工作减少很多:

在这里阅读有关 stdbool.h 的信息

相同,

if (foobar) 

表示 foobar 不为零,所以它是正数还是负数都无所谓,它仍然不为零

如果 foobar 是负数(它仍然不同于零),您的语句应该返回 true,但您应该避免这种测试,因为以这种方式测试可以具有不同"true"值的变量不是最佳实践。

相关内容

  • 没有找到相关文章

最新更新