• C语言丨搞定关系运算符,只需一分钟!


    之前介绍了C语言中的逻辑运算符,今天就分享一下关系运算符吧,希望对大家有所帮助。


     

    关系运算符

    在判断条件中,让程序决定下一步的操作,称为关系运算符(Relational Operators)。

    关系运算符在使用时,它的两边都会有一个表达式,比如变量、数值、加减乘除运算等,关系运算符的作用就是判明这两个表达式的大小关系。注意,是判明大小关系,不是其他关系。

    关系运算实际上类似于数学当中比较数字大小的运算。C语言提供了 6 种关系运算符:


     

    关系运算符的左右两边可以是变量、数值或算术表达式,用关系运算符连接而成的表达式称为关系表达式。在含有算术运算符的关系表达式中,算术运算符的优先级高于关系运算符。

    关系表达式的运算结果是一个逻辑值:“真”或“假”,在 C语言中用数值 1 表示“真”,用数值 0 表示“假”。因而,每当 C语言对关系表达式进行运算时,总是产生结果数值 1 或 0。下面的语句把 1 赋值给变量 a,把 0 赋值给变量 b:

    a = (8<10);        //(8<10)为“真”,其结果值为 1,因而变量 a 被赋值 1

    b = (3==4);        //(3==4)为“假”,其结果值为 0,因而变量 b 被赋值 0

    关系运算符的两边可以是变量、数据或表达式,例如:

    a+b > c-d

    x > 3/2

    'a'+1 < c

    -i-5*j == k+1

    关系运算符也可以嵌套使用,例如:

    a > (b > c)

    a != (c == d)

    关系运算符的运算结果只有 0 或 1。当条件成立时结果为 1,条件不成立结果为 0。例如:

    5>0 成立,其值为 1;

    34-12>100 不成立,其值为 0;

    (a=3)>(b=5) 由于3>5不成立,故其值为 0。

    我们将运算结果 1 称为“真”,表示条件成立,将 0 称为“假”,表示条件不成立。

    下面的代码会将关系运算符的结果输出:

    #include <stdio.h>

    int main(){

        char c='k';

        int i=1, j=2, k=3;

        float x=3e+5, y=0.85;

        int result_1 = 'a'+5<c, result_2 = x-5.25<=x+y;

        printf( "%d, %d ", result_1, -i-2*j>=k+1 );

        printf( "%d, %d ", 1<j<5, result_2 );

        printf( "%d, %d ", i+j+k==-2*j, k==j==i+5 );

        return 0;

    }

    运行结果:

    1, 0

    1, 1

    0, 0

    对于含多个关系运算符的表达式,如 kji+5,根据运算符的左结合性,先计算kj,该式不成立,其值为0,再计算0i+5,也不成立,故表达式值为0。

    特别注意,才表示等于,而=表示赋值,大家要注意区分,切勿混淆。

    if 语句的判断条件

    if 语句的判断条件中不是必须要包含关系运算符,它可以是赋值表达式,甚至也可以是一个变量,例如:

    //情况①

    if(b){

        //TODO:

    }

    //情况②

    if(b=5){  //情况①

        //TODO:

    }

    都是允许的。只要整个表达式的值为非0,条件就成立。

    上面两种情况都是根据变量 b 的最终值来判断的,如果 b 的值为非0,那么条件成立,否则不成立。

    再如

    if(a=b)

        printf("%d",a);

    else

        printf("a=0");

    意思是,把 b 的值赋予 a,如果为非0则输出该值,否则输出“a=0”字符串。

    总结

    1、=表示赋值,把其右边的值存储在左边的变量中。

    2、==是关系运算符,判断其左右两边的值是否相等。


     

    如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!
    C语言C++学习企鹅圈子】,分享(源码、项目实战视频、项目笔记,基础入门教程)
    欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

    编程学习书籍:


     

    编程学习视频:


     
  • 相关阅读:
    SQL 从查询结果里查询
    c++函数返回局部变量
    《Android源代码设计模式解析与实战》读书笔记(二十)
    也谈学习
    Ejb in action(一)——开篇介绍
    Re-ID with Triplet Loss
    AFNetworking、ASIHTTPRequest中SSL的使用
    BZOJ 1982: [Spoj 2021]Moving Pebbles [博弈论 对称]
    BZOJ 3895: 取石子[SG函数 搜索]
    BZOJ 2463: [中山市选2009]谁能赢呢?[智慧]
  • 原文地址:https://www.cnblogs.com/mu-ge/p/14246373.html
Copyright © 2020-2023  润新知