【试题036】赋值运算符小例题2

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.截图:【试题036】赋值运算符小例题2_第1张图片

你可能感兴趣的:(c语言,开发语言,笔记)