程序向读者介绍了所有的六种关系云算法和三种逻辑运算符,以及它们的优先级次序;
关系运算符中的“关系”二字指的是一个值与另一个值之间的关系,逻辑运算符中的“逻辑”二字指的是连接关系的方式。
下面列出的是关系和逻辑操作符的相对优先级:
最高 !
> >= < <=
== !=
&&
最低 ||
需要注意的是,除运算符“!”之外,所有关系和逻辑操作符的优先级都低于算法操作符,也就是说,当算式中同时有算术操作符,关系和逻辑操作符(“!”除外)时,是在执行完所有的算术运算后,才开始执行关系和逻辑运算。
应用实例:
#include <stdio.h>
void main()
{
//定义一个整数类型的变量,用来存放后面算式的值
int logic;
int a = 1;
int b = 2;
int c = 3;
logic = a+b>c&&b<=c;
printf("logic = %d\n",logic);
logic = a>=b+c || b==c;
printf("logic = %d\n",logic);
logic = !(a+c)+b!=1&&(a+c)/2;
printf("logic = %d\n",logic);
}
程序中的三个输出是0,0和1,即分别为假,假,真。下面分析一下程序中是三个算式的运算顺序。
算式一:a+b>c&&b<=c,也可表示为((a+b)>c)&&(b<=c)。先进行算术运算a+b,其值为3(真),然后才根据关系和逻辑运算符的优先级进行运算,即分别运算3>c和b<=c,它们的值非别为0和1,最后将0和1相与,得出最终结果为0.
算式二:a>=b+c && b==c
算式三:!(a+c)+b!=1&&(a+c)/2