相关的C和相等运算符
二进制相关的和相等运算符与它们的第二个操作数对象比较其第一个操作数测试所指定的关系的有效性。 一个关系表达式的结果为 1,如果测试的关系是 TRUE 和 0,则为 false。 该结果的类型是 int。
语法
相关表达式:
移位表达式相关表达式 AMP_LT shift 表达式
相关表达式 AMP_GT shift 表达式
相关表达式 AMP_LT= shift 表达式
相关表达式 AMP_GT= shift 表达式
相等表达式:
相关表达式相等表达式 == 相关表达式
相等表达式 ! = 相关表达式
相关和相等运算符测试以下关系:
运算符 |
测试的关系 |
---|---|
< |
第一个操作数小于第二个操作对象 |
> |
第一个操作数大于第二个操作对象 |
<= |
第一个操作数小于或等于第二个操作对象 |
>= |
第一个操作数大于或等于第二个操作对象 |
== |
第一个操作数等于第二个操作对象 |
!= |
第一个操作数不等于第二个操作对象 |
上面列表中的前四个运算符与相等运算符具有更高优先级 (== 和 !=)。 请参见优先级信息在表 C 运算符优先级和结合性中。
操作数可以具有集成,浮动或指针类型。 操作数的类型可以是不同的。 关系运算符对整型和浮点类型的操作数的常见的算术转换。 此外,还可以使用操作数类型的以下组合与相关的和相等运算符:
所有相关或等于运算符两个操作数可以是指向同一类型。 相等性 (==) 和不相等 () 运算符!=,比较的结果指示两个指针是否解决同一内存位置。 对于其他关系运算符 (AMP_LT、 AMP_GT、 AMP_LT= 并且 AMP_GT=),比较的结果指示对象的两个内存地址的相对位置点。 关系运算符仅比较偏移量。
指针比较为同一对象的部分仅定义。 如果指针引用数组的成员,则比较与相应的下标的比较是等效的。 第一个数组元素的地址与”最后一个元素的地址是 “少。 对于结构,再重新的结构成员的指针声明为小于”指针 “大到结构中声明的成员之前。 为同一联合的成员的指针相等。
指针值与相等 (==) 或不相等性 (!=) 常数值 0 进行比较。 与值的指针为 0 称为 “null”指针;即不指向有效的内存位置。
相等运算符遵循规则和关系运算符相同,但是,授予其他的可能性:指针可以与一个常数集成表达式与值 0,或与 void的指针进行比较。 如果两个指针是两个 null 指针,它们的比较结果为相等。 相等运算符比较段和扭曲。
示例
下面的示例阐释了相关和相等运算符。
int x = 0, y = 0;
if ( x < y )
由于 x 和 y 相等,此示例将的表达式值 0。
char array[10];
char *p;
for ( p = array; p < &array[10]; p++ )
*p = '\0';
在此示例中的片段设置 array 的每个元素为 null 字符常数。
enum color { red, white, green } col;
.
.
.
if ( col == red )
.
.
.
这些语句声明枚举名为的变量与标记 color的 col 。 任何时候,变量可以包含整数值的 0、 1 或 2,,表示某个枚举设置的 color的元素:绿色的红色,空白或,它们。 如果 col 包含 0 行,且 如果 语句中执行,所有语句根据 如果 要执行。