对简单的逻辑关系式的练习
#include <stdio.h>
int main()
{
int a = 5, b = 3;
printf("%d\n", 1 < 2);
printf("%d\n", a > b);
printf("%d\n", a <= b + 1);
printf("%d\n", 'a' + 'b' <= 'c');
printf("%d\n", (a = 3) > (b = 5));
return 0;
}
/*逻辑运算符*/
对逻辑语与或非的使用学习
#include <stdio.h>
int main()
{
int a = 5, b = 3;
printf("%d\n",3>1 && 1<2 );
/*真与真,所以结果为真,输出1 */
printf("%d\n",3+1 || 2==0 );
/*因为3+1=4,为非零数,所以为真;真或假,结果仍为真,输出1*/
printf("%d\n", !(a+b));
/*a+b为8,非零数,为真,所以输出结果为假,输出0*/
printf("%d\n",!0+1<1 || !(3+4))
/*!0为假,输出结果为真1,所以1+1<1为假;假或假为假,输出0*/
printf("%d\n",'a'-'b'&& 'c');
/*'a'为99,'b'为97,相减为1,结果为真,真与真,结果为真,输出1*/
return 0;
}
/*逻辑语的使用*/
对短路求值的运用
/*短路求值又称最小化求值,是一种逻辑运算符的求值策略。只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算符求值*/
#include <stdio.h>
int main()
{
int a = 3, b = 3;
(a = 0) && (b = 5);
/*因为逻辑语是&&,所以左边不成立,将不再对右边进行计算,直接赋值a=0*/
printf("a=%d,b=%d\n", a, b);
(a = 1) || (b = 5);
/*因为逻辑语是||或,所以左边一旦成立也不再对右边进行计算,直接赋值a=1*/
printf("a=%d,b=%d", a, b);
return 0;
}