c语言 设int x=2,y=3,z; z=(++x>=y--)?((--y==1)?x--:--y):y--;

则Z的值为多少,我算的最后结果为1但是答案上是3求具体推理过程谢谢... 则Z的值为多少 ,我算的最后结果为1 但是答案上是3 求具体推理过程 谢谢 展开
 我来答
旅泉典南风
2020-01-28 · TA获得超过1257个赞
知道小有建树答主
回答量:1307
采纳率:100%
帮助的人:7万
展开全部
先判断(++x>=y--),因为++在前,所以x+1=3,而--在后,所以先比较,y后变化,因此,在比较时,y仍为2,因此x=y,所以,z=((--y==1)?x--:--y)也就是前一项的值。此时,x=3,y=2;
再判断(--y==1),因为y先前已经变为2,所以此时y变为1,因此,z=x--;由上同理,--在后,因此z=x=3,后面x才会变为2。
大致如此,不懂可以再问我
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式