5.4.2 关系表达式

关系表达式就是用关系运算符将两个表达式连接起来,连接的表达式可以是算数表达式、关系表达式、逻辑表达式、赋值表达式和字符表达式等。例如下面的表达式都是关系表达式。

    a>b
    (a=7)<(b=4)
    a+b<c-d
    x! =y
    b*b>4*a*c

任何一个关系表达式的结果均可能为两个值:真和假,其中1代表真,0代表假。假设x=1, y=2,z=3,看下面关系表达式的含义。

❑ fabs(x-y)<1.06E-06:求值顺序为先执行函数运算,再执行<,表达式的结果为0。

❑ z>y+x:求值顺序为先执行+,再执行>,表达式的结果为0。

❑ x!=y==z-2:求值顺序为先执行-,再执行!=,最后执行==(同级从左向右),表达式的结果为1。

❑ x=y==z-1:求值顺序为先执行-,再执行==,最后执行=,表达式的结果为1。

实例5-5

比较两个数值并返回比较的结果

源码路径daima\5\5-5

本实例的实现文件为“guanxi.c”,具体实现代码如下。

    #include <stdio.h>
    int main(void){
        int jieguo, a=6, b=3;                              //声明变量
        jieguo=(a>b);                                      //获得关系表达式a>b的结果
        printf("jieguo=(a>b)\ni=%d\n", jieguo);            //输出结果
        jieguo=(a<b);                                      //获得关系表达式a<b的结果
        printf("jieguo=(a<b)\njieguo=%d\n", jieguo); //输出结果
        jieguo=(a>=b);                                     //获得关系表达式a>=b的结果
        printf("jieguo=(a>=b)\njieguo=%d\n", jieguo); //输出结果
        jieguo=(a<=b);                                     //获得关系表达式a<=b的结果
        printf("jieguo=(a<=b)\njieguo=%d\n", jieguo); //输出结果
        jieguo=(a==b);                                     //获得关系表达式a==b的结果
        printf("jieguo=(a==b)\njieguo=%d\n", jieguo); //输出结果
        jieguo=(a! =b);                                    //获得关系表达式a! =b的结果
        printf("jieguo=(a! =b)\njieguo=%d\n", jieguo); //输出结果
    }

上述代码先定义变量a和b的初始值,然后将变量jieguo定义为关系运算表达式的运算结果。最后通过关系表达式来执行各种操作运算,并输出运算结果。程序运行后将分别输出各个关系表达式的运算结果,执行效果如图5-5所示。

图5-5 执行效果

拓展范例及视频二维码

范例5-5-01:使用关系运算符

源码路径:演练范例\5-5-01\

范例5-5-02:使用关系表达式运算

源码路径:演练范例\5-5-02\