C语言中的关系操作符

C语言中的关系操作符

C语言用于比较的表达式,称为关系表达式(relational expression),里面使用的运算符就称为"关系运算符"(relational operator),主要有下面6个。

  • >大于运算符
  • >=大于等于运算符
  • <小于运算符
  • <=小于等于运算符
  • ==相等运算符
  • !=不相等运算符

下面是一些例子。

a == b;
a != b;
a < b;
a > b;
a >= b;
a <= b;

关系表达式通常返回01,表示真假。

C语言中,0表示假,所有非零值表示真。比如,20 > 12返回120 > 20返回0

关系表达式常用于ifwhile结构。

if (x == 3){
    printf("x is 3.\n");
}

注意:相等运算符==与赋值运算符=是两个不一样的运算符,不要混淆。有时候不小心些出下面的代码,它可以运行,但很容易出现意料之外的结果。

if(x = 3)...

上面示例中, 原意是x == 3,但是不小心写成x = 3。这个式子表示对变量x赋值3,它返回值为3,所以if判断总为真。
为了防止出现这种错误,有的程序员喜欢讲变量写在等号的右边。

if(3 == x)...

这样的话,如果把==误写成=,编译器就会报错。

/* 报错 */
if(3 = x)...

另一个需要避免的错误是:多个关系运算符不宜连用。

i < j < k

上面实例中,连续使用两个小于运算符。这是合法表达式,不会报错,但是通常达不到想要的结果,即不是保证变量j的值在ik之间。因为关系运算符是从左到右计算,所以实际执行的是下面的表达式。

(i < j) < k

上面式子中,i < j返回01,所以最终是01与变量k进行比较。如果想要判断变量j的值是否在ik之间,应该使用下面的写法。

i < j && j < k

比如:我们输入一个年龄,如果年龄在18岁~36岁之间,我们输出青年。

#include <stdio.h>

int main()
{
    int age = 0;
    scanf("%d", &age);
    if(18<=age && age <= 36)
    {
        printf("青年\n");
    }
    return 0;
}

posted @ 2023-07-26 22:52  davie2020  阅读(144)  评论(0编辑  收藏  举报