龙空技术网

C语言中逻辑运算表达式中的惰性算法

为明天开心 168

前言:

当前你们对“c语言逻辑表达式计算例题”大概比较关怀,姐妹们都想要学习一些“c语言逻辑表达式计算例题”的相关文章。那么小编也在网上收集了一些对于“c语言逻辑表达式计算例题””的相关资讯,希望你们能喜欢,姐妹们快快来学习一下吧!

在C语言的关系表达式及逻辑表达式运算中,按常规的运算是要将运算符中前后的表达式全部进行运算后再进行相应的运算,最后得出结果。

C语言中的逻辑运算符有三个,&&:与运算,||或运算,!非运算,其中&&运算只有当两边的值全为非为时结果才为1,||只有两边中有一个值为非0,则结果为1,而!运算则是对其后面的表达式进行取反运算。根据&&的运算规则,则只要前边的值为0,则整个&&运算表达式的值为0,如:int a=1,b; b=1<0&&++a;则运算后,a的值不变,b的值为0,因为1<0这个表达式的值为0,所以&&运算就决定了1<0&&++a这个表达式的结果一定为0,也就没必要对后面的++a再进行运算,所以a的值仍为1;根据||运算的规则,只有当两边全为0时结果才为0,因此,只要||运算符前面的表达式值为1,则||运算符后的表达式就不再进行运算,如:int a=1,b; b=1>0||++a;经过此运算后,a的值不变,b的值为1,因为1>0这个表达式的值为1,所以||就决定了1>0||++a这个表达式的值一定为1,也就没必要对++a再进行运算。

这种算法和现实中的行为是一样的,都已经知道了结果,就没必要再花费时间再去讨问这件事的结果。纯属浪费时间。如:

#include<stdio.h>//C语言逻辑表达式的惰性算法

main()

{

int a=2,b=3,c=4;

int d=a<3&&b<c||c++;

printf("%d,%d,%d,%d",a,b,c,d);

}

运行结果如下:

2,3,4,1

--------------------------------

Process exited after 0.006199 seconds with return value 7

请按任意键继续. . .

标签: #c语言逻辑表达式计算例题