S1E9
#include <stdio.h>int main() {
int a = 3, b = 5;
(a = 0) && (b = 3);
printf("a=%d, b=%d\n", a, b);
(a = 1) || (b = 3);
printf("a=%d, b=%d\n", a, b);
return 0;
}
视频里讲解短路求值的例子,为什么逻辑表达式可以这样用(平常见到的都是在循环里没见过直接出来的),它的效果是什么{:10_245:} 我猜也就是演示一些用法,平时没这么玩的 演示短路吧 有列子更清楚 (表达式1) && (表达式2) :如果表达式1为假,那么不再执行表达式2
(表达式1) || (表达式2): 如果表达式1为真,那么不再执行表达式2
比如 int m=2, n=2;
int a=1, b=2, c=3
(m=a>2) && (n=b>3);//a>2为假(0) ,m=0(假) ,则不再执行 n=b>3, 最后结果为 m=0, n=2 wp231957 发表于 2021-5-21 16:50
我猜也就是演示一些用法,平时没这么玩的
{:10_269:}确实很少见过这么用的
首先你应该明白这&&和||号的作用吧,然后你的问题写在注释里了,如下:
#include <stdio.h>
int main() {
int a = 3, b = 5;
(a = 0) && (b = 3);//效果就是执行a=0;由于a=0导致这一行的结果已经注定为假也就是0了,所以b=3没执行,所以b仍=5;
printf("a=%d, b=%d\n", a, b);
(a = 1) || (b = 3);//效果就是执行a=1;由于a=1导致这一行的结果已经注定为真也就是1了,所以b=3仍没执行,所以b仍=5;
printf("a=%d, b=%d\n", a, b);
return 0;
}
满意的话给个最佳答案吧亲{:5_92:}{:5_92:}
页:
[1]