for
ループの状態で0を書き込んだので、一度実行され、0の代わりにjを書いたときにjが0に初期化されました。一度でも実行されません。その背後にある理由は何ですか?同じ値の変数litteralまたは変数を使用すると、ループの条件が異なります
for(i=0;0;i++)
と
j = 0;
for(i=0;j;i++)
最初のものは、一度実行が、次の1は実行されませんでした。
for
ループの状態で0を書き込んだので、一度実行され、0の代わりにjを書いたときにjが0に初期化されました。一度でも実行されません。その背後にある理由は何ですか?同じ値の変数litteralまたは変数を使用すると、ループの条件が異なります
for(i=0;0;i++)
と
j = 0;
for(i=0;j;i++)
最初のものは、一度実行が、次の1は実行されませんでした。
これはあなた自身が答えることができる基本的なCの質問です。 for
コンストラクトの2番目のパラメータは条件付きです。 trueと評価された場合、ループは続行されます。 falseと評価された場合、ループは停止します。
2番目のパラメータをリテラル0
に設定するか、0に設定された変数j
に設定すると、その値を論理falseに評価する値に設定します。
これはコードが行うことですが、OPは最初のもの(リテラル付き)が実行されていることを私たちに伝えています。 – LPs
私は彼が明らかにコミュニケーションしていないと思うのは、明らかに知っているように、それは起こり得ないからです。 :) –
しかし、リテラル0のforループはターボコンパイラで実行され、コードブロックコンパイラでは実行されません。ありがとうございました –
これらのループは実行しないでください。 – odin
[私は両方が実行されていないことを確信しています。](http://ideone.com/jwFbeN)あなたのコンパイラは何ですか? – LPs
[MCVE](http://stackoverflow.com/help/mcve) – LPs