BohYoh.comトップページへ
C & C++ FAQ
目次

C C++ どうしてa < x < bはうまく判断できないのですか。

 xの値が、aより大きくbより小さいかどうかを判断することを意図した、式a < x < bについて考えましょう。
 関係演算子<は、左オペランドを評価した値が、右オペランドを評価した値より小さければint型の1を、そうでなければint型の0を生成します。
 この演算子は左結合性をもつ2項の演算子ですから、式a < b < c(a < b) < cと解釈されます。したがって、この式を評価した値は、
となります。xの値が、aより大きくbより小さいかどうかを判断するのではありません。
 正しくはa < b && b < cとなります。



戻る

BohYoh.comロゴ