- 逻辑与(&&)的优先级高于逻辑或(||)
- 逻辑与运算一侧数值为0时不再进行后续计算;
- 逻辑或运算一侧数值为1时不再进行后续计算;
#include<stdio.h>
int main()
{
int a = 0, b = -1;
printf("%d %d %d", a++ && b++, a, b); //输出结果:0 1 -1
return 0;
}
本文通过一个C语言示例讲解了逻辑与(&&)和逻辑或(||)的运算优先级及短路特性。当逻辑与一侧的值为0时,不会继续计算右侧表达式;逻辑或一侧的值为1时,也不会计算右侧。示例代码中,a++&&b++的执行顺序导致输出结果为01-1。
#include<stdio.h>
int main()
{
int a = 0, b = -1;
printf("%d %d %d", a++ && b++, a, b); //输出结果:0 1 -1
return 0;
}
1万+
1275

被折叠的 条评论
为什么被折叠?