正文

&&与||解析2006-01-07 14:43:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/billgacsli/9392.html

分享到:

&&逻辑与,||逻辑或,逻辑运算符,同优先级。其意义如下:A&&B——只有当A、B都为真时,该表达式值才为真;A||B——只有当A、B都为假时,表达式值才为假。 特别注意(似乎是C进行的优化):对于表达式A||B,当A为真时,将不对B进行判断,因为整个表达时的值已经确定了,为真;而对于表达式A&&B,当A为假时,将不对B进行判断,因为整个表达时的值已经确定了,为假。 看如下语句:x=y=z=-1;++x||++y&&++z;++x,值为0,x值也为0;接下来是||,还要对后面进行判断,++y,值为0,y值也为0;接下来是&&,不再进行判断,整个表达式的值为0,z的值仍为-1。故执行完后,x=0,y=0,z=-1 x=y=z=-1;++x&&++y||++z;++x,值为0,x值也为0;接下来是&&,不对紧跟表达式进行判断,y值仍为-1;接下来是||,要对后面进行判断,++z,z的值为0,整个表达式的值为0。故执行完后,x=0,y=-1,z=0看如下程序:#include <stdio.h>int main(){ int x,y,z;  x=y=z=-1; ++x||++y&&++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z);  x=y=z=-1; ++x&&++y||++z; printf("x=%d\ty=%d\tz=%d\n",x,y,z);  return 0;}其输出结果为:x=0     y=0     z=-1x=0     y=-1    z=0

阅读(3743) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册