C奇怪如果声明

时间:2014-01-31 13:16:00

标签: c if-statement

我知道这可能是一个愚蠢而容易的问题,但我对编程很新。我对一个程序中看到的if运算符有以下问题。这是代码:

  d= -12.4;
  if(d) printf("%d \n", abs((int)d));
  else printf("%d \n",(int)(d));

为什么打印12而不是-12。 我的意思是为什么这句话甚至是真的?

if(d)

我认为只有一个变量的语句在语法上是不正确的。

2 个答案:

答案 0 :(得分:6)

基本上

if(d)

相同
if(d != 0)

这是完全有效的代码。

答案 1 :(得分:6)

在C中,任何非零的表达式都被视为true。标识符(如变量名称)是一个有效的表达式,否则你将无法在任何地方使用变量名称。