2015-01-27 44 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