首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >if语句整数

if语句整数
EN

Stack Overflow用户
提问于 2013-02-01 20:50:39
回答 3查看 87.7K关注 0票数 35

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

int foobar

if (foobar)
{
// do something.
}

现在,如果我是正确的,当foobar不是零时,这句话是正确的。因此,它应该与if (foobar!=0)大致相同。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-01 20:52:28

负或正。在if中,任何不为0的值都是真值

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

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

但是在C99标准编译器出现之后,我建议您改用<stdbool.h>。大大减少了猜测的工作量:

Read here about stdbool.h

票数 62
EN

Stack Overflow用户

发布于 2013-02-01 20:53:22

同样的,

if (foobar) 

表示foobar不为零,因此无论是正还是负都无关紧要,它仍然不是零

票数 6
EN

Stack Overflow用户

发布于 2013-02-01 20:58:31

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14646718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档