2.4.4 关系运算

    关系运算,就是比较运算,C++提供了6种比较运算,如表2.7所示。

    2.4.4 关系运算 - 图1

    从优先级上来说,“==”和“!=”两种运算符的优先级比其他关系运算符的优先级低。和算术运算符一样,关系运算要求两个操作数为数字,可用于整型、浮点型和字符型。但不可用于比较两个字符串常量,因为实际上比的是两个字符串在内存中的地址。

    如果比较结果成立,如“1<2”,返回bool型常量true,否则返回bool型常量false。

    关系运算符比算术运算符的优先级低,这说明


    x+5>y-7 等价于 (x+5)>(y-7)而不是 x+(5>y)-7

    或许有的读者会对“x+(5>y)-7”这个表达式感兴趣,不管“5>y”是true还是false,后面减7又是怎么回事呢?实际上这也属于类型转换的范畴,在进行C++算术运算时,true值会自动转换为1,而false则自动转换为0,详细的介绍同样可参考稍后的类型转换专题。

    注意

    不要混淆了“==”和“=”,前者用于比较两个操作数是否相等,后者用于赋值。