我在for
循环的条件下写了0,所以它一旦执行,当我写j而不是0并且j初始化为0时,for循环为即使一次也不执行。它背后的原因是什么?for循环中的条件在使用litteral或具有相同值的变量时有所不同
for(i=0;0;i++)
和
j = 0;
for(i=0;j;i++)
执行一次第一个,但下一个未执行。
我在for
循环的条件下写了0,所以它一旦执行,当我写j而不是0并且j初始化为0时,for循环为即使一次也不执行。它背后的原因是什么?for循环中的条件在使用litteral或具有相同值的变量时有所不同
for(i=0;0;i++)
和
j = 0;
for(i=0;j;i++)
执行一次第一个,但下一个未执行。
这是一个基本的C问题,你应该能够自己回答。 for
构造中的第二个参数是一个条件。如果它评估为真,则循环继续。如果评估结果为false,则循环停止。
当您将第二个参数设置为立即数0
或设置为零的变量j
时,您将其设置为一个计算结果为逻辑false的值。
这就是代码所做的,但OP是告诉我们,第一个(与文字)是执行。 – LPs
我怀疑他只是没有清楚地沟通,因为如你所知,这是不可能发生的。 :) –
但是,带循环0的for循环在turbo编译器中执行,不在代码块编译器中执行。谢谢 –
这两个循环都不应执行。 – odin
[我很确定这两个都没有执行。](http://ideone.com/jwFbeN)你的编译器是什么? – LPs
您应该发布[MCVE](http://stackoverflow.com/help/mcve) – LPs