专题二 符号的技巧---- 11.逻辑运算符的使用分析

来源:互联网 发布:皇室战争辅助软件 编辑:程序博客网 时间:2024/06/12 18:27
int i=0;int j=0;if(++i>0 || ++j>0){    printf(“%d\n”,i);    printf(“%d\n”,j);} //结果:1,0

短路规则:

||从左向右开始计算,一旦遇到一个条件为真则立即停止运算(后面的条件表达式不再进行计算),整个表达式为真;所有条件为假表达式才为假。

&&从左向右开始运算,一旦遇到某个条件为假立即停止运算(后面的条件表达式不再进行计算),整个表达式为假;所有条件为真时整个表达式才为真。

int g=0;int f(){    return g++;       //g++,先返回函数值0,再自增1.}if(f() && f()){    printf(“%d\n”,g);}printf(“%d\n”,g);//结果:1printf(“%d\n”,!0);printf(“%d\n”,!1);printf(“%d\n”,!100);printf(“%d\n”,!-1000);//结果:1,0,0,0


C语言中逻辑运算符!只知道0,见到0就返回1,其它的值都返回0.

 

三目运算符(a?b:c)作为逻辑运算符的载体

规则:当a为真时,返回b的值,否则返回c的值。 

int a=1;int b=2;int c=0;c=a<b?a:b;(a<b?a:b)=3;//error:类似于1=3*(a<b?&a:&b)=3;                //okint* p=NULL;p=(a<b?&a:&b);*p=3;