语法
expression < expression
expression > expression
expression <= expression
expression >= expression
备注
二进制关系运算符确定下列关系:
小于 (<)
大于 (>)
小于或等于 (<=)
大于或等于 (>=)
关系运算符具有从左到右的关联性。 关系运算符的两个操作数必须是算术或指针类型。 它们将生成类型的值 bool 。 false 如果表达式中的关系为 false,则返回的值为 (0) ; 否则返回的值为 true (1) 。
示例
// expre_Relational_Operators.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main() {
cout << "The true expression 3 > 2 yields: "
<< (3 > 2) << endl
<< "The false expression 20 < 10 yields: "
<< (20 < 10) << endl;
}
前面的示例中的表达式必须括在括号中,因为 () 的流插入运算符的 << 优先级高于关系运算符。 因此,未括在括号中的第一个表达式的计算结果将为:
(cout << "The true expression 3 > 2 yields: " << 3) < (2 << "\n");
标准转换中涵盖的常用算术转换将应用于算术类型的操作数。
比较指针
在比较两个指向同一类型的对象的指针时,结果由程序的地址空间中所指向的对象的位置决定。 也可以将指针与计算结果为0的常量表达式或类型为的指针进行比较 void * 。 如果对类型的指针进行了指针比较,则 void * 另一个指针将隐式转换为类型 void * 。 然后进行比较。
不能比较两个类型不同的指针,除非:
一个类型是派生自另一个类型的类类型。
至少一个指针会显式转换 (将) 转换为类型 void * 。 (其他指针将隐式转换为转换的类型 void * 。 )
两个指向同一对象的相同类型的指针一定是相等的。 如果比较两个指向对象的非静态成员的指针,则以下规则将适用:
如果类类型不为 union ,并且两个成员未由 访问说明符(如 public 、或)分隔,则 protected private 指向最后声明的成员的指针将比指向前面声明的成员的指针比较。
如果两个成员由 访问说明符 隔开,则结果是不确定的。
如果类类型为,则指向 union 该比较中不同数据成员的指针 union 相等。
如果两个指针指向同一数组的元素或指向超出数组末尾 1 的元素,则指向带较高下标的对象的指针会更高。 仅当指针引用同一数组中的对象或超出数组末尾 1 的位置时,才能保证指针比较有效。
该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处,本文章博客地址:https://blog.youkuaiyun.com/it_cplusplus/article/details/118835799
本文介绍了C++中的关系运算符,包括小于(<)、大于(>)、小于等于(<=)和大于等于(>=)。这些运算符具有从左到右的关联性,适用于算术或指针类型的操作数,返回bool值。当比较指针时,若指向同一类型的对象,结果取决于它们在内存中的相对位置。比较不同类型指针需满足特定条件,如派生关系或转换为void*。此外,文章还提到了比较类类型成员指针的规则。

583

被折叠的 条评论
为什么被折叠?



