在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,则右边的表达式不会执行。
今天的文章C语言逻辑运算符分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/72706.html