おそらくあなたは意味しif (i==4 && j==9)
ます。
このような状況では、これをから&&
に変更してもあまり&
変更されないはずです。変更される大きな点は、を使用すると、その部分が真である場合にのみ評価されますが、を使用すると、両方が関係なく評価されることです。&&
j==9
i==4
&
のようなものがあるif (x != NULL && x->whatever ...)
場合、2番目の部分(逆参照)がnullポインターでないx
場合にのみ評価されるようにします。x
ただし、あなたの場合、int
sのように見えるものを比較しても、問題が発生する可能性はほとんどありません。
1
シグナル以外の値を生成する可能性のあるものを扱っているときに、問題が発生する可能性もありますtrue
。==
繰り返しになりますが、常にまたはのいずれかが生成さ0
れるため、ここでは問題になりません1
。(たとえば)から、などを使用してisalpha
いislower
た場合、それらはゼロ以外の値<ctype.h>
を生成するためにのみ必要です。0
それらを、と組み合わせると&
、ビット単位or
で取得され、2つの非ゼロ入力(たとえば、、1 & 2 == 0
が1 && 2 == 1
)に対して0が生成される可能性があります。
and
からの結果にビット単位で使用すると、 orまたはor==
を取得します。降伏します(true)。他のすべては0(false)を生成します---ちょうどそうであるように。0 & 0
0 & 1
1 & 0
1 & 1
1 & 1
1
&&