В чем смысл! Int_variable--?
Я не могу понять, что делает следующий код s
:
if(!s--)
s
является int
2 ответа
Решение
!
называется negation
оператор. Это логический оператор.
Смотрите запись в Википедии здесь.
if(!s--)
Порядок, в котором он выполняется
- проверить значение
s
является0
или нет, еслиs
является0
,if
условие успеха [благодаря!
оператор], иначе неудача. - После этого декремент
s
на одну единицу. - На основании оценки
if
условие, продолжить выполнение [код подif
условие или следующий блок кода.
На самом деле, это вводит в заблуждение.
Вы тестируете s
отличается от 0 (с if (!s)
). И потом, каким бы ни был результат, вы уменьшаете его.
Итак, это две разные операции. Это можно записать так:
if (!s)
{
s--;
//...
}
else
{
s--;
}