2年前サンプルプログラムを見たら見たことない書き方をしたところがありました。以下のコードはそれをまねて書いたものです。第二引数はどのような意味でしょうか・ご指導お願いします。0)・・・bが0の時にTRUE(1)になる。それ以外はFALSE(0)。3)・・・bが3の時にTRUE(1)になる。それ以外はFALSE(0)。3)は1になると思います。2年前ありがとうございます。0)・・・bが0の時にTRUE(1)になる。それ以外はFALSE(0)。3)・・・bが3の時にTRUE(1)になる。それ以外はFALSE(0)。C++では、比較演算子の結果は整数ではなく、bool型のtrueまたはfalseです。5.13)ので、この場合bool型のオペランドがint型に変換されて計算されるのだと思います。boolからintの変換は、falseが0に、trueが1に変換されます。2年前ifが省略されたわけではないです。bool型に|演算子を使うのは珍しいですが......。3)」の結果のビットごとの論理和を計算します。0」はbが0に等しければtrueを,そうでなければfalseを式の値にします。3」はbが3に等しければtrueを,そうでなければfalseを式の値にします。面倒なことに|演算子を使っているため,|演算子の両辺がint型に変換されます。この時,trueは1に,falseは0になります。それらのビットごとの論理和を取るため,結果として,「bが0か3であれば式の値は1,そうでなければ0」となります。ちなみ,||演算子を使っていた場合,両辺がbool型に変換される(今回の場合は元々bool型なので変換はない)ので,「bが0か3であれば式の値はtrue,そうでなければfalse」となります。2年前みけCATさんYuOさんありがとうございます。論理和の演算をしているためint型になっているということですね。ミクプラは自由にリンクできます。