Постфиксные операторы в циклах while

Я просматривал код C++ сегодня, когда наткнулся на это:

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

с было целым числом. Не делают ли циклы while логические выражения для оценки? Я знаю, что 1 и 0 в порядке, потому что они представляют истину и ложь, соответственно, но в этом случае c принимает значения, отличные от 0 и 1. Что это делает?

1 ответ

Решение

Все, что не равно 0, считается истинным, так что это будет цикл до C=0.

Может быть простой случай "использования меньшего количества кода"

Другие вопросы по тегам