#include<stdio.h>void main(){int a,b,c;a=1,b=2,c=3;printf("%d尀n",a=b==c);}答案是什么,解释下

2024-11-15 15:01:59
推荐回答(3个)
回答1:

答案是0
a=b==c这个表达式是从右向左运算的,也就相当于a=(b==c)
而b==c这个判断表达式显然是不成立的,所以有一个返回值为0。
即,a=0;
printf("%d\n",a=b==c);
就相当于
a=b==c;
printf("%d\n",a);
明白了么?
至于2楼说的优先级的问题,显然是错误的,你可以把a打印出来,结果也为0,按他说的就为2了

回答2:

答案是0,输出时候运算顺序是从右向左的,算完了在把值输出,b==c的值是0,a=0,然后输出a

回答3:

0