等式与不等式运算符 == !=

等式运算符与关系运算符一样,比较关系有效性的两个操作数。 但是,等式运算符的优先顺序低于关系运算符。 下表描述了两个等同性运算符:

运算符 使用量
== 指示左操作数的值是否等于右操作数的值。
!= 指示左操作数的值是否不等于右操作数的值。

两个操作数都必须具有算术或枚举类型,或者是指向相同类型的指针,或者一个操作数必须具有指针类型,而另一个操作数必须是指向 void 的指针或空指针。

C 结果的类型为 ,如果指定的关系为真,则值为 ,如果为假,则值为。 int 1 0 仅限 C + + 结果类型为 ,值为 或。 bool true false

仅限 C + + 结果类型为 bool ,值为 truefalse 仅限 C + +

如果操作数具有算术类型,那么将对操作数执行通常的算术转换。

如果操作数是指针,那么结果由指针所引用的对象的位置确定。

如果一个操作数是指针,而另一个操作数是具有值 0的整数,那么仅当指针操作数求值为 NULL时, == 表达式才为 true。 如果指针操作数 not 求值为 NULL,那么 != 运算符求值为 true。

您还可以使用等式运算符将指针与类型相同但不属于同一对象的成员进行比较。 以下表达式包含等式和关系运算符的示例:
time < max_time == status < complete
letter != EOF
注: 等号运算符 (==) 不应与赋值 (=) 运算符混淆。
例如
if (x == 3)
如果 x 等于 3 ,那么求值为 true (或 1)。 等同性测试应该使用运算符和操作数之间的空格进行编码,以防止意外分配。

while

if (x = 3)
被视为 true ,因为 (x = 3) 求值为非零值 (3)。 该表达式还将值 3 赋给 x。