2015-01-27 47 views
0

我是通過一些C++代碼今天看時,我偶然發現了這一點:Postfix的運營商,而循環

while (c--) { 
    a = (a + 1) % n; 
    while(arr[a]) a = (a + 1) % n; 
} 

C爲整數。不要循環採取布爾表達式進行評估?我知道1和0是好的,因爲它們分別代表真和假,但在這種情況下,c取0和1以外的值。這是什麼?

+0

http://en.cppreference.com/w/cpp/language/implicit_cast#Boolean_conversions的簡單情況 – user657267 2015-01-27 00:25:17

回答

1

任何不是0的東西都被認爲是真的,所以這會循環直到C = 0。

可能只是「使用更少的代碼」

+1

我沒有意識到這一點。謝謝! – Blimeo 2015-01-27 00:26:21