虽然(i)做什么?

时间:2013-10-11 00:52:12

标签: while-loop

我知道虽然(1)是一个无限循环,但是(i)意味着什么呢?

int i=5;
...
while(i)
{
i=i-1;
printf("%d\n", i);
}

最后,将打印数字“0”。我不明白的是为什么这不是一个无限循环,为什么它停在0?

4 个答案:

答案 0 :(得分:6)

它会停止,因为0评估为false

答案 1 :(得分:1)

零表示False,任何非零(偶数浮点)值表示True。

考虑一下:

float i=5.5;
...
while(i)
{
  i=i-1.5;
  printf("%d\n", i);
}

即使它不是整数,这也有效。 所以,虽然(i)只是意味着(i!= 0)

答案 2 :(得分:0)

隐含地意味着while (i!=0)。所以基本上你的代码相当于

int i=5;
...
while(i!=0)
{
i=i-1;
printf("%d\n", i);
}

解释了它的行为。

答案 3 :(得分:0)

所有非零整数都被解释为true,而0被解释为false。如果这是在C(而不是C ++)中,那么实际上并没有内置的布尔文字truefalse。 C中的假值由整数零表示,而真值由非零整数表示。