我在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