关系运算符
关系运算符检查两个操作数之间的特定关系是否为真。结果评估为 1(表示为真 )或 0(表示为假 )。此结果通常用于影响控制流(通过 if
,while
,for
),但也可以存储在变量中。
等于“==”
检查提供的操作数是否相等。
1 == 0; /* evaluates to 0. */
1 == 1; /* evaluates to 1. */
int x = 5;
int y = 5;
int *xptr = &x, *yptr = &y;
xptr == yptr; /* evaluates to 0, the operands hold different location addresses. */
*xptr == *yptr; /* evaluates to 1, the operands point at locations that hold the same value. */
注意:不应将此运算符与赋值运算符(=
)混淆!
不等于“ !=”
检查提供的操作数是否不相等。
1 != 0; /* evaluates to 1. */
1 != 1; /* evaluates to 0. */
int x = 5;
int y = 5;
int *xptr = &x, *yptr = &y;
xptr != yptr; /* evaluates to 1, the operands hold different location addresses. */
*xptr != *yptr; /* evaluates to 0, the operands point at locations that hold the same value. */
该运算符有效地将相反的结果返回到 equals(==
)运算符的结果。
不是“!”
检查对象是否等于 0
。
!
也可以直接与变量一起使用,如下所示:
!someVal
这与以下效果相同:
someVal == 0
大于“>”
检查左手操作数的值是否大于右手操作数
5 > 4 /* evaluates to 1. */
4 > 5 /* evaluates to 0. */
4 > 4 /* evaluates to 0. */
小于“<”
检查左手操作数的值是否小于右手操作数
5 < 4 /* evaluates to 0. */
4 < 5 /* evaluates to 1. */
4 < 4 /* evaluates to 0. */
大于或等于“> =”
检查左手操作数是否与右操作数具有更大或相等的值。
5 >= 4 /* evaluates to 1. */
4 >= 5 /* evaluates to 0. */
4 >= 4 /* evaluates to 1. */
小于或等于“<=”
检查左手操作数是否与右操作数的值相等或相等。
5 <= 4 /* evaluates to 0. */
4 <= 5 /* evaluates to 1. */
4 <= 4 /* evaluates to 1. */