这个语句的逻辑是怎么回事?++a||++b&&++c,原码如下
#include <stdio.h>int main(void)
{
int a, b, c;
a=b=c=1;
++a||++b&&++c;
printf("a=%d b=%d c=%d\n", a, b, c);
return 0;
} 先算++a,a变成2,2是真,所以后面++b&&++c不会执行
逻辑或运算,当左边的为真时,右边的不会执行,如:a=1;b=0 ;a||b++,b++不会执行,若b||a++,由于b=0为假,就会执行a++
lyjlyj 发表于 2018-2-28 22:07
先算++a,a变成2,2是真,所以后面++b&&++c不会执行
逻辑或运算,当左边的为真时,右边的不会执行,如:a= ...
膜拜大神 遵循逻辑运算的“短路规则”,考试的时候弄明白就行。在实际工作中,最好不要出现这种代码:可读性差,不易于理解。
页:
[1]