int a,b,c,w=1,x=2,y=3,z=4,d=5,e=6;
a=b=c=1;
++a || ++b && ++c;
(d=w>x) && (e=y>z);
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, c, w = 1, x = 2, y = 3, z = 4, d = 5, e = 6;
a = b = c = 1;
++a || ++b && ++c;
(d = w > x) && (e = y > z);
printf("a: %d\n", a);
printf("b: %d\n", b);
printf("c: %d\n", c);
printf("d: %d\n", d);
printf("e: %d\n", e);
return 0;
}
结果
a b c 都赋值为 1
&& 优先级高于 ||
++a || ++b && ++c; 等于++a || (++b && ++c);
++a之后a变成2,2为真 || 之后的 ++b && ++c 就不执行了
w = 1, x = 2, w > x 不成立结果d是0(假)
d是0(假) && 之后的 (e = y > z) 也不执行了, e 还是 6 不变
最终结果
a: 2
b: 1
c: 1
d: 0
e: 6
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!