2026-08-22
precedence.c
#include <stdio.h>
int main(void) {
int x = 6;
printf("%d\n", x & 1 == 0);
}
これは何を出力するでしょうか?
Answer
0。==は&より優先順位が高いため、これはx & (1 == 0)、つまりx & 0と解釈されます。結果は常に0です。ビット演算と比較演算を混ぜるときに、意図した通りに評価されるよう括弧を明示すべきことを思い出させる落とし穴です。