11智能在线
新记
main() {int x,y,z; x=1;y=2;z=3; x=y--<=x||x+y!=z; printf("%d,%d",x,y); } 运行的结果是1和1,为什么不
结果为什么不是0和1
举报该文章
相关建议 2010-09-30
这里涉及到
运算符
的优先级及||的短路特性——当然此处没出现那种情况。
优先级 "<=" > "||" > "=" 故先执行y--<=x( 2<=1)为0 (执行该表达时后y再自减,y变为1) 再执行x+y!=z(1+1!=3) 为1 最后执行总的
表达式
即x=0||1(x变为1) 当然输出1和1了
温馨提示:内容为网友见解,仅供参考
当前网址:
https://11.t2y.org/zz/f74s247vf.html
其他看法
第1个回答 2010-09-30
“||”的用法为,当它前面的语句为真时,就不会执行后面的语句,你的语句的输出为:2,1才对,“=”的优先级是大于||的优先级,所以按理说x=y--<=x是一个整体来执行,x=2,y=1。
第2个回答 2010-09-30
结果应该是0,1吧!
相似回答
大家正在搜
相关问题
main() {int x,y,z; x=1; y=2; z...
main() { int X=1,y=2,z=3; x+=y...
#include "stdio.h" main() { in...
main() { int x,y,z; x=y=1; z=x...
#include<stdio.h> void main() ...
main() {int x=1,y=2,2;z=x+y+3;...
c语言:main()?{int x,y,z;? x=y=1;...