6.5.9 关系运算符
关系运算符包括:
<><=>=
下列情形之一必须成立:
- 两个操作数都具有实数类型;
- 两个操作数都是指向兼容对象类型的指针。
若任一操作数是十进制浮点类型,则另一操作数不得是标准浮点类型。
若两个操作数都具有算术类型,则先执行通常算术转换。正零与负零比较时相等。
在这些运算符中,一个并非数组元素的对象指针,应视为“指向长度为 1 的数组首元素的指针”。
两个指针进行关系比较时,只有在标准明确给出相对位置规则时才有定义。例如:
- 指向同一数组中较大下标元素的指针,比较结果更大;
- 指向同一结构体中后声明成员的指针,比较结果更大;
- 指向同一联合体成员的指针彼此相等;
- 指向同一数组尾后位置的指针,比指向该数组中元素的指针更大。
除这些明确规定的情况外,指针关系比较行为未定义。
关系成立时结果为
1,不成立时结果为0,结果类型是int。
WARNING
不是“任意两个指针都能比较大小”。只有标准明确给出相对位置语义的场景,关系比较才有定义。