c语言,设有int x=1 y=1 z=1 c;则执行语句c=--x&&--y||--z;后,x

c语言,设有intx=1y=1z=1c;则执行语句c=--x&&--y||--z;后,xyz分别是多少?... c语言,设有int x=1 y=1 z=1 c;则执行语句c=--x&&--y||--z;后,x y z分别是多少? 展开
 我来答
百度网友206b068
2017-10-27 · TA获得超过1117个赞
知道小有建树答主
回答量:1729
采纳率:84%
帮助的人:106万
展开全部
x,y,z的值分别为0,1,0

逻辑运算符的运算特点是左值确定求右值.逻辑运算符不按照规定的优先级计算,在逻辑表达式的求值过程中,如果从"&&"或"||"左边的运算对象部分能够确定整个逻辑表达式的值,则不再求右边运算对象的值.具体地说:若有a&&b且a的值为0,则无须对b进行运算;若有a||b且a 的值为1,则无须对b进行运算.
表达式按优先级可分为二部分:
第一部分:--x&&--y
第二部分:第一部分值||--z;
--x 为前置运算,先将x值减1后,再参与运算,则结果为0;
根据优化,第一部分后面的--y就不运算了,值仍然为1。第一部分的值为0。
再计算第二部分。
0 ||--z;
z 的值还要减1,变为0。最终逻辑表达式的值为0。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xgh024028
2014-06-09 · TA获得超过827个赞
知道小有建树答主
回答量:283
采纳率:71%
帮助的人:219万
展开全部
x=0
y=1
z=0
与运算,左边为假时,右边不再计算,左边为真,两边都计算。或运算,左边为真时,右边不再计算,左边为假时,两边都计算
追问
恩,大神,这执行语句要怎么看?为何c=,还会出现x,y,的值呢?z
追答
你分开来看,首先,把x减1赋给c,c现在为0,判断x为0,故与运算左边为假,右边不再计算,与运算结果为假,或运算右边要计算,z减1后,也为0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式