奇怪的循环条件

时间:2014-02-07 15:06:06

标签: c visual-studio for-loop

即使给出的条件只是t,这个for循环也能正常工作。

如果它甚至没有有效的条件,这怎么可能? 还有很多其他例外吗?

for (t=10; t; --t) {
  printf("%d",t);
}    

3 个答案:

答案 0 :(得分:2)

  

如果它甚至不是有效的条件,这怎么可能。还有很多其他例外吗?

这是可能和有效的条件 for循环中的第二个子表达式t用于检查t是否等于0。它相当于

for (t=10; t != 0 ; --t) {...}

答案 1 :(得分:0)

C中的布尔值实际上是整数。 0为假,所有非零值均为真。因此,t != 0

时,第二个表达式为“true”

答案 2 :(得分:0)

这是t存在的有效条件和值。简单地说,条件表达式只检查结果是!= 0(评估为真),否则为假。

当您使用条件运算符(==!=等)时,它实际上返回0或1的结果,请尝试:

int a = 2;
printf("Result: %d, %d\n", a == 1, a == 2);