if语句整数

时间:2013-02-01 12:50:39

标签: c if-statement int

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

int foobar

if (foobar)
{
// do something.
}

现在,如果我对此是正确的,当foobar不为零时,这种说法是正确的。所以它应该与if(foobar!= 0);

相同

但是如果foobar成为负数会怎么样?

3 个答案:

答案 0 :(得分:47)

消极或积极。任何不是0的东西都是if

中的真值

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

内部C中的

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

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

Read here about stdbool.h

答案 1 :(得分:2)

同样,

if (foobar) 

意味着foobar不为零,所以无论是正面还是负面无关紧要,它仍然不为零

答案 2 :(得分:0)

如果foobar是一个负数(它仍然不等于零),你的语句应该返回true,但是你应该避免那种测试,因为测试那些可能具有不同'true'值的变量不是最好的做法。