C言語 - if 文は 0 or 非0 で判定される

C言語の if 文の判定は「0 or 0 以外」である。
0 は偽で、0 以外は真を意味する。

0 以外が真ということは、1 でも 10 でも 100 でも真になる。

if (100) {
    printf("TRUE!\n");
}

0 が偽、1 が真と思っていると罠にはまる。
true, false と対応させるとその方がしっくりくるんだけど、そうではない。

気を付けて。


いいなと思ったら応援しよう!