**Not strictly a boolean type**

The boolean type named **bool** is not strictly a boolean
type.

You can initialize it using the literal values *true* and
*false.*

You can also initialize it with a numeric value where 0 represents false and any non-zero numeric value represents true.

Also, it is possible to perform arithmetic using a variable of
type **bool** but you need to be very careful in this regard. If the
variable was initialized using a non-zero numeric value with a fractional part,
the arithmetic results are likely to something other than what you might expect.