C语言逻辑运算符
在C语言中,逻辑运算符有&&、||、!
-
&&表示“与”的意思,需要两端的表达式的值都为true,该式的值才为true。 -
||表示“或”的意思,两端的表达式的值只要有一端为true,该式的值就为true。 -
!表示“非”的意思,将该式的真值换成相反的真值,即false和true互换。
但是在C99里有这样的一个名为“短路”的特性
- 使用&&时,如果左边false则右边不会执行
- 使用||时,如果左边true则右边不会执行
&&运算符,举例
#include<stdio.h> int main() { int a=-1,b=0; if(a++&&b++) printf("%d %d",b,a); if(++b&&++a) printf("%d %d",a,b); return 0; }
想想程序的输出结果是什么
答案是:
1 2
程序的流程是
先定义变量a=-1,b=0,然后进入第一个if()判断,&&左边的值是-1,右边的值为0,所以此if()下的语句不执行,但是由于&&左侧为true,所以&&右侧的b++也会得到执行,此行结束时,a的值为0,b的值为1。
第二次if(),左边的值为2,右边的值为1,所以`if()“下的语句得到执行,输出a的值1,b的值2。
||运算符同理,如果左边的表达式的值为true,则右边的表达式不会执行。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)