1.题目:设int a=0,b=0,m=0,n=0;,执行(m=a==b)/(n=a==b)后m和n的值分别?
2.代码+分析:
int main() {
  //设int a=0,b=0,m=0,n=0;,执行(m=a==b)/(n=a==b)后m和n的值分别
  int a = 0,b = 0,m = 0,n = 0,x;
  x = (m = a == b) || (n = a == b);
  printf("%d\n%d\n", m, n);
  //分析:根据优先级口诀,括号第一,括号中关系比赋值高,然后逻辑或的短路现象要比运算符优先考虑
  //1. a==b,关系运算的结果是逻辑值,0==0是真的1,所以m=1
  //2.此时||的左边表达式结果为1,触发短路,右边表达式将不再执行
  //3. 所以n的值没有变化还是0
  
}
3.截图:



















