!!
guarantees that the result will end up as a 1 or a 0, rather than just the value of _Expression
or 0. In C, it's unlikely to matter, but in C++ I think it turns the result of the expression into a bool
type, which might be useful in some cases. If you did have some API that required a literal 1 or 0 be passed to it, using !!
would be a way to make it happen.