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\