В C "true" определяется как "не ноль". «ложь» определяется как «ноль». Так что да, они одинаковы.
Будьте осторожны с методами, которые возвращают не примитивные типы; в C ++ перегрузка операторов может привести к тому, что "! = 0" не сравнит что-либо с нулем :-P. Хотя здесь нет проблем.
Кроме того, если вы не ставите скобки, убедитесь, что вы понимаете порядок операций.