等価演算子は、関係演算子と同様に、リレーションシップの妥当性について 2 つの オペランドを比較します。ただし、等価演算子には、関係演算子よりも低い優先順位が付けられます。
結果の型は int で、指定された関係が true であれば値 1 を持ち、
false であれば 0 を持ちます。
結果の型は bool で、値 true または false を持ちます。
次の表で、2 つの等価演算子を説明します。
演算子 | 使用法 |
---|---|
== | 左方オペランドの値が、右方オペランドの値と等価かどうかを示します。 |
!= | 左方オペランドの値が、右方オペランドの値と等価でないかどうかを示します。 |
オペランドは両方とも算術型または列挙型を保持するか、同じ型を指すポインターである必要があります。 あるいは、一方のオペランドがポインター型を保持し、もう一方のオペランドが void を指すポインターまたはヌル・ポインターである必要があります。 結果は、C では型 int、C++ では bool です。
オペランドが算術型のときは、オペランドに通常の算術変換を実行します。
オペランドがポインターの場合は、ポインターが参照するオブジェクトのロケーションに よって結果が決まります。
一方のオペランドがポインターで、もう一方のオペランドが値 0 の整数の場合、 == 式は、ポインターのオペランドが NULL に 評価される場合にだけ true になります。!= 演算子は、ポインター・オペランド が NULL に評価されない 場合に、true になります。
等価演算子を使用して、型が同じでも、同じオブジェクトに属さないメンバーを指す ポインターを比較することもできます。次の式には、等価演算子と関係演算子の例が含まれています。
time < max_time == status < complete letter != EOF
例えば、次のような場合です。
一方、
関連参照