文章目录
文档视频讲解链接地址
腾讯课堂视频链接 : 11_表达式_关系与逻辑运算符
2.11 关系与逻辑运算符
关系运算符如下:
关系运算符实例
int a=5, b=6; a>(b-1) // 结果值为0 (a +1)== b // 结果值为1 a>=(b-2) // 结果值为1 a<100 // 结果值为1 (a+3)<=b // 结果值为0 a != (b-1) // 结果值为0
逻辑运算符如下:
逻辑非运算符
逻辑非 “!” 运算符的运算律如下:
例如:
int k=8; ! ( k ==0) // 结果值为1 ! ((k-8) == 0) // 结果值为0 ! (k<= 0) // 结果值为1
逻辑与运算符
逻辑与“&&”运算符的运算规律如下:
逻辑与的短路特性
短路特性:如果第一个操作数是false,那么无论第二个操作数是什么值,结果也不可能等于true。
形式 : (表达式1)&& ( 表达式2)
如果表达式1为假,则表达式2不会进行运算,即表达式2“被短路”
例如:
int x = 5, y =6 ; (x>5)&&(y++) ; // 结果为假 , 运算后 x=5, y=6
逻辑或运算符
逻辑或||运算符的运算规律如下:
逻辑或的短路特性
短路特性:如果第一个操作数是true,第二个操作符就不会再被求值了。
形式 : (表达式1)|| ( 表达式2)
如果表达式1为真,则表达式2不会进行运算,即表达式2“被短路”
例如:
int x = 5, y =6 ; (x<= 5)||(y++) ; // 结果为真 , 运算后 x=5, y=6
实例11 - 逻辑运算符
int x=5, y=18; (x>=5) && (y<20) // 结果值为1 ((x+1)>=0) && (y<17) // 结果值为0 ((x-8)>=0) && (y==18) // 结果值为0 ((x-5)>0) && (y!=18) // 结果值为0 ((x>=5)) || (y<20) // 结果值为1 ((x+1)>=0) || (y<17) // 结果值为1 ((x-8)>=0) || (y==18) // 结果值为1 ((x-5)>0) || (y!=18) // 结果值为0
源文件
01-cbase\11-luoji.c
源代码
#include <stdio.h> int main(int argc, char const *argv[]) { int x=5,y=6; (x>5)&&(y++) ; // 逻辑与的短路特性 , 结果为假 , 运算后 x=5, y=6 luo printf("x=%d,y=%d\n",x,y); (x<= 5)||(y++) ; // 逻辑或的短路特性 , 结果为真 , 运算后 x=5, y=6 printf("x=%d,y=%d\n",x,y); x=5, y=18; int ret = 0 ; ret = (x>=5) && (y<20) ; // 结果值为1 printf("1:ret=%d\n",ret) ; ret = ((x+1)>=0) && (y<17) ; // 结果值为0 printf("2:ret=%d\n",ret) ; ret = ((x-8)>=0) && (y==18) ; // 结果值为0 printf("3:ret=%d\n",ret) ; ret = ((x-5)>0) && (y!=18) ; // 结果值为0 printf("4:ret=%d\n",ret) ; ret = ((x>=5)) || (y<20) ; // 结果值为1 printf("5:ret=%d\n",ret) ; ret = ((x+1)>=0) || (y<17) ; // 结果值为1 printf("6:ret=%d\n",ret) ; ret = ((x-8)>=0) || (y==18) ; // 结果值为1 printf("7:ret=%d\n",ret) ; ret = ((x-5)>0) || (y!=18) ; // 结果值为0 printf("8:ret=%d\n",ret) ; return 0; }
运行结果
x=5,y=6 x=5,y=6 1:ret=1 2:ret=0 3:ret=0 4:ret=0 5:ret=1 6:ret=1 7:ret=1 8:ret=0