即使給出的條件只是t
這個for循環工作。奇怪的循環條件
當它甚至沒有有效的條件時,這怎麼可能? 是否還有其他許多例外情況?
for (t=10; t; --t) {
printf("%d",t);
}
即使給出的條件只是t
這個for循環工作。奇怪的循環條件
當它甚至沒有有效的條件時,這怎麼可能? 是否還有其他許多例外情況?
for (t=10; t; --t) {
printf("%d",t);
}
這怎麼可能當它甚至不是一個有效的條件。還有其他許多例外嗎?
這是可能和有效的條件。
for循環中的第二個子表達式t
用於檢查t
是否等於0
。它相當於
for (t=10; t != 0 ; --t) {...}
謝謝你的解釋:) –
完成我接受了:) –
C中的布爾值是有效的整數。 0是錯誤的,並且所有的非零值都是真的。結果第二個表達式爲'真',而t != 0
這是一個有效條件,因爲t
存在並且作爲一個值。簡而言之,條件表達式只是檢查結果是否爲!= 0
(評估爲true),否則爲false。
當您使用條件運算符(==
,!=
等),它實際上返回的結果是0或1,試試吧:
int a = 2;
printf("Result: %d, %d\n", a == 1, a == 2);
'0 - > FALSE','! 0 - > true',這是非常多的。 – RedX