我知道这可能是一个愚蠢而容易的问题,但我对编程很新。我对一个程序中看到的if运算符有以下问题。这是代码:
d= -12.4;
if(d) printf("%d \n", abs((int)d));
else printf("%d \n",(int)(d));
为什么打印12而不是-12。 我的意思是为什么这句话甚至是真的?
if(d)
我认为只有一个变量的语句在语法上是不正确的。
答案 0 :(得分:6)
基本上
if(d)
与
相同if(d != 0)
这是完全有效的代码。
答案 1 :(得分:6)
在C中,任何非零的表达式都被视为true。标识符(如变量名称)是一个有效的表达式,否则你将无法在任何地方使用变量名称。