我想知道main() {int a=1,b=2,c=3; printf(“%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c)) }结果是为什么3,1,0,0

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/15 20:36:39
我想知道main(){inta=1,b=2,c=3;printf(“%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c))}结果是为什么3,1,0,0我想知道m

我想知道main() {int a=1,b=2,c=3; printf(“%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c)) }结果是为什么3,1,0,0
我想知道main() {int a=1,b=2,c=3; printf(“%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c)) }
结果是为什么
3,1,0,0

我想知道main() {int a=1,b=2,c=3; printf(“%d,%d,%d,%d\n",a=b=c,a=b==c,a==(b=c),a==(b==c)) }结果是为什么3,1,0,0
首先这是输出后面斯个表达式这知道吧!其实就是四个表达式.你去查下运算符优先级
a=b=c:c先赋值给b那么b=3,b在赋值给a,那么a=3,此时a,b,c都等于3;输出3;
a=b==c:先进行比较预算判断是否等于c,显然b等于c(都是3),那么返回1,在赋值给a,这样a就为1;输出1;
a==(b=c):先算()里的,将c赋值给b,(此时b,c都是3),再判断a是否等于3,(因为上面得到a=1)显然不等0所以返回a=0,输出0;
a==(b==c)):先判断把是否等于c,都等于3,所以相等返回1 ,在判断a否等于1,(此时a=0),所以不相等,返回0