Code Fix

中級ビット演算子 & の優先順位が比較演算子 == より低いことによる誤動作 › パターン3

ビット演算子 & の優先順位が比較演算子 == より低いことによる誤動作

a & b == cと書くと、==の方が優先順位が高いため、a & (b == c)として解釈されます。

 1  #include <stdio.h>
 2  
 3  int main(void) {
 4      int level = 8;
 5      int flag = 8;
 6      if (______________________) {
                       ^
 7          printf("yes\n");
 8      } else {
 9          printf("no\n");
10      }
11      return 0;
12  }
出力: no期待: yes

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

ビット演算子 & の優先順位が比較演算子 == より低いことによる誤動作

意図した(a & b) == cとは異なる結果になります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)