为了账号安全,请及时绑定邮箱和手机立即绑定

想问问这题为什么最后结果为011

想问问这题为什么最后结果为011

福工刘德华 2018-06-30 10:20:50
#include<stdio.h>void main(){ int x=1,y=1,z=1; --x&&(--y||--z); printf("%d%d%d",x,y,z);}
查看完整描述

1 回答

已采纳
?
onemoo

TA贡献883条经验 获得超454个赞

&& 运算符会先求左侧操作数的值,只要左侧的值为 0 就不再求右侧操作数的值,整个 && 表达式的值直接为 0。

你这里 --x 表达式的值为 0,所以这个 && 表达式求值结束。而右操作数(--y||--z)则根本不会被求值。

这样 y 和 z 的值都不会变化,只有 x 会自减。

查看完整回答
反对 回复 2018-06-30
  • 1 回答
  • 1 关注
  • 1020 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信