作业帮 > 综合 > 作业

x=y=z=1; --x&&++y||++z; printf("%d,%d,%d\n",x,y,z); ++x||--y

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/16 22:42:14
x=y=z=1; --x&&++y||++z; printf("%d,%d,%d\n",x,y,z); ++x||--y&&--z; printf("%d,%d,%d\n",x,y,z)
x=y=z=1; --x&&++y||++z; printf(
x=y=z=1; --x&&++y||++z; printf("%d,%d,%d\n",x,y,z);
--x的结果是0 --x&&++y为0 ++y没有执行 ++z结果为2 z的值也是2
输出结果是0,1,2
++x||--y&&--z; printf("%d,%d,%d\n",x,y,z);
++x结果是2 不执行--y&&--z;操作
输出结果为2,1,1
再问: 第一步回答对了 但是第二步回答的不对 输出的不是这个;还有为什么不执行?
再答: ++x||--y&&--z; printf("%d,%d,%d\n",x,y,z); 按照优先级别(++x)||(--y&&--z); 或运算前面为真 后面不执行 所以y,z的值还是1,1 输出结果就是2,1,1
再问: 你运行一下 输出的结果是1,1,2,而不是2,1,1; 或运算为什么为真,后面的就不执行了?他应该按照先后顺序,先执行与在执行或呀?