C言語の場合はint型の0にtrueという別名をつけて1にfalseという別名をつけてるだけ
実際には0以外は全て偽として扱う
モダンな言語の場合はそれにintではなくboolean型をつけてintとの暗黙の変換をできなくしてることが多い